# Rnd Function

This page is specific to the Visual Basic for Applications (VBA) Language Reference for Office 2010.

Returns a **Single** containing a random number.

**Syntax**

**Rnd**[**(number)**]

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

**Return Values**

If |
Rnd generates |
---|---|

Less than zero |
The same number every time, using |

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

**Remarks**

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.

## Example

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

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