Rnd Function |
Main Menu |
Syntax
Rnd[(number)]
The number argument can be any valid numeric expression.
Remarks
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:
If 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 example illustrates use of the Randomize statement.
Dim MyValue, Response
Randomize ' Initialize random-number generator.
Do Until Response = vbNo
MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6.
MsgBox MyValue
Response = MsgBox ("Roll again? ", vbYesNo)
Loop
|