Rnd Function

Returns a random number.

Syntax

Rnd[(number)]

Remarks

The number argument can be any valid numeric expression.

The Rnd function returns a value less than 1 but greater than or equal to 0. The value of number determines how Rnd generates a random number:

Table 11-13 Rnd Function Return Values

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

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.

Note:

To repeat sequences of random numbers, call Rnd with a negative argument immediately before using Randomize with a numeric argument. Using Randomize with the same value for number does not repeat the previous sequence.

The following examples illustrate how the Rnd functions return random numbers:

Example 1:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd
'Output: random number between 0 and 1

Example 2:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd(-1)  ' Use -1 as the seed
'Output: the same random number each time

Example 3:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd  ' Generate the first random number
'Output: the first random number
randomNumber = Rnd  ' Generate the next random number
'Output: the next random number

Example 4:

Dim randomNumber
Randomize ' Initialize random-number generator
randomNumber = Rnd(0)  ' Generate a random number and store it
'Output: the most recently generated random number

Example 5:

Dim lowerbound, upperbound, randomNumber
lowerbound = 1
upperbound = 10
Randomize  ' Initialize random-number generator
randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
'Output: a random integer between 1 and 10