# random_int

(PHP 7)

random_int — Generates cryptographically secure pseudo-random integers

### Description

random_int ( int `$min` , int `$max` ) : int

Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.

The sources of randomness used for this function are as follows:

- On Windows, » CryptGenRandom() will always be used. As of PHP 7.2.0, the » CNG-API will always be used instead.
- On Linux, the » getrandom(2) syscall will be used if available.
- On other platforms, /dev/urandom will be used.
- If none of the aforementioned sources are available, then an Exception will be thrown.

> Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.

### Parameters

`min`

  The lowest value to be returned, which must be `PHP_INT_MIN` or higher.

`max`

  The highest value to be returned, which must be less than or equal to `PHP_INT_MAX`.

### Return Values

Returns a cryptographically secure random integer in the range `min` to `max`, inclusive.

### Errors/Exceptions

- If an appropriate source of randomness cannot be found, an Exception will be thrown.
- If invalid parameters are given, a TypeError will be thrown.
- If `max` is less than `min`, an Error will be thrown.

### Examples

Example #1 random_int() example

`<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>`

The above example will output something similar to:

    int(248)
    int(-898)

### See Also

- random_bytes() - Generates cryptographically secure pseudo-random bytes