PHP Numbers Generating Random Numbers Within a Range - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Numbers Generating Random Numbers Within a Range - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

## PHP Numbers

### Generating Random Numbers Within a Range

#### Problem

You want to generate a random number within a range of numbers.

Solution

Use mt_rand():

\$lower = 65;
\$upper = 97;
// random number between \$upper and \$lower, inclusive
\$random_number = mt_rand(\$lower, \$upper);

#### Discussion

Generating random numbers is useful when you want to display a random image on a page, randomize the starting position of a game, select a random record from a database, or generate a unique session identifier. To generate a random number between two endpoints, pass mt_rand() two arguments: the minimum number that can be returned and the maximum number that can be returned. Calling mt_rand() without any arguments returns a number between 0 and the maximum random number, which is returned by mt_getrandmax().

Generating truly random numbers is hard for computers to do. Computers excel at following instructions methodically; they’re not so good at spontaneity. If you want to instruct a computer to return random numbers, you need to give it a specific set of repeatable commands; the fact that they’re repeatable undermines the desired randomness.

PHP has two different random number generators, a classic function called rand() and a better function called mt_rand(). MT stands for Mersenne Twister, which is named for the French monk and mathematician Marin Mersenne and the type of prime numbers he’s associated with. The algorithm is based on these prime numbers. Because mt_rand() is less predictable and faster than rand(), we prefer it to rand().