Skip to main content

Rnd function

Returns a Single containing a pseudo-random number.


Rnd [ (Number) ]

The optional Number argument is a Single or any valid numeric expression.

Return values

If Number is Rnd generates
Less than zero The same number every time, using Number as the seed.
Greater than zero The next number in the pseudo-random sequence.
Equal to zero The most recently generated number.
Not supplied The next number in the pseudo-random sequence.


The Rnd function returns a value less than 1 but greater than or equal to zero.

The value of Number determines how Rnd generates a pseudo-random number:

  • For any given initial seed, the same number sequence is generated because each successive call to the Rnd function uses the previous number as a seed for the next number in the sequence.
  • Before calling Rnd, use the Randomize statement without an argument to initialize the random-number generator with a seed based on the system timer.

To produce random integers in a given range, use this formula:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

Here, upperbound is the highest number in the range, and lowerbound is the lowest number in the range.


This example uses the Rnd function to generate a random integer value from 1 to 6.

Dim MyValue As Integer
MyValue = Int((6 * Rnd) + 1)    ' Generate random value between 1 and 6.

Leave a comment

Your email address will not be published. Required fields are marked *

Format your code: <pre><code class="language-vba">place your code here</code></pre>