rand
(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Generate a random integer
Description
$min
, int $max
): int
If called without the optional min
,
max
arguments rand()
returns a pseudo-random integer between 0 and
getrandmax(). If you want a random number
between 5 and 15 (inclusive), for example, use rand(5,
15)
.
This function does not generate cryptographically secure values, and should not be used for cryptographic purposes. If you need a cryptographically secure value, consider using random_int(), random_bytes(), or openssl_random_pseudo_bytes() instead.
Note: On some platforms (such as Windows), getrandmax() is only 32767. If you require a range larger than 32767, specifying
min
andmax
will allow you to create a range larger than this, or consider using mt_rand() instead.
Note: As of PHP 7.1.0, rand() uses the same random number generator as mt_rand(). To preserve backwards compatibility rand() allows
max
to be smaller thanmin
as opposed to returningfalse
as mt_rand().
Parameters
-
min
-
The lowest value to return (default: 0)
-
max
-
The highest value to return (default: getrandmax())
Return Values
A pseudo random value between min
(or 0) and max
(or getrandmax(), inclusive).
Changelog
Version | Description |
---|---|
7.2.0 | rand() has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines. |
7.1.0 | rand() has been made an alias of mt_rand(). |
Examples
Example #1 rand() example
<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>
The above example will output something similar to:
7771 22264 11
Notes
min
max
range must
be within the range getrandmax(). i.e. (max
-
min
) <= getrandmax()
Otherwise, rand() may return poor-quality random numbers.
See Also
- srand() - Seed the random number generator
- getrandmax() - Show largest possible random value
- mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator
- random_int() - Generates cryptographically secure pseudo-random integers
- random_bytes() - Generates cryptographically secure pseudo-random bytes
- openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes