Rnd Function

Returns a Single containing a random number.



The optional number argument (argument: A value that provides information to an action, an event, a method, a property, a function, or a procedure.) is a Single (Single data type: A data type that stores single-precision floating-point variables as 32-bit (4-byte) floating-point numbers ranging in value from -3.402823E38 to -1.401298E-45 for negative values and 1.401298E-45 to 3.402823E38 for positive values.) or any valid numeric expression (numeric expression: Any expression that evaluates to a number. The expression can be any combination of variables, constants, functions, and operators.).

Return Values

If number is Rnd generates
Less than zero The same number every time, using number as the seed (seed: An initial value used to generate pseudorandom numbers. For example, the Randomize statement creates a seed number used by the Rnd function to create unique pseudorandom number sequences.).
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.


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 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.

 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.


 Note   Examples that follow demonstrate the use of this function in a Visual Basic for Applications (VBA) module. For more information about working with VBA, select Developer Reference in the drop-down list next to Search and enter one or more terms in the search box.

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

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

Applies to:
Access 2007