Genera un valor aleatorio mediante el generador de números aleatorios Mersenne Twister

# mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand — Genera un valor aleatorio mediante el generador de números aleatorios Mersenne Twister

### Descripción

function mt_rand(): int
function mt_rand(int `$min`, int `$max`): int

Muchos generadores de números aleatorios provenientes de viejas bibliotecas libcs tienen comportamientos dudosos y son muy lentos. mt_rand() es una función de reemplazo para rand(). Utiliza un generador de números aleatorios de característica conocida, el " » Mersenne Twister " que es 4 veces más rápido que la función estándar libc.

Llamada sin los argumentos opcionales `min` y `max`, mt_rand() devuelve un número pseudoaleatorio, entre 0 y mt_getrandmax(). Para obtener un número entre 5 y 15 inclusive, se debe utilizar `mt_rand(5,15)`.

Precaución

Esta función no genera valores criptográficamente seguros, y no debe ser utilizada con fines criptográficos, o con fines que requieran que los valores devueltos sean indescifrables.

Si se requiere aleatoriedad criptográficamente segura, el Random\Randomizer puede ser utilizado con el motor Random\Engine\Secure. Para casos de uso simples, las funciones random_int() y random_bytes() proporcionan una API práctica y segura que es soportada por el CSPRNG del sistema operativo.

Precaución

Esta función utiliza la instancia global Mt19937 ("Mersenne Twister") como fuente de aleatoriedad y por lo tanto comparte su estado con todas las demás funciones que usan el Mt19937 global. El uso de cualquiera de estas funciones avanza la secuencia para todas las demás funciones, independientemente del ámbito.

Generar secuencias repetibles sembrando mt_srand() o srand() con un valor conocido también producirá una salida repetible de esta función.

Preferir el uso de los métodos de Random\Randomizer en todo código nuevo.

### Parámetros

`min`

  Valor más bajo que puede ser devuelto (por omisión: 0)

`max`

  Valor más alto que puede ser devuelto (por omisión: mt_getrandmax()).

### Valores devueltos

Un int aleatorio comprendido entre `min` (o 0) y `max` (o mt_getrandmax(), inclusivo).

### Errores/Excepciones

- Si `max` es inferior a `min`, se lanzará una excepción ValueError.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | Se lanzará una excepción ValueError si `max` es inferior a `min`; anteriormente, se emitía un `E_WARNING` y la función devolvía `false`.
7.2.0 | mt_rand() recibió una corrección de error para un bug de polarización módulo. Esto significa que las secuencias generadas con un valor de inicialización específico pueden diferir de PHP 7.1 en máquinas de 64 bits.
7.1.0 | rand() se convirtió en un alias de mt_rand().
7.1.0 | mt_rand() fue actualizado para utilizar la versión corregida, correcta, del algoritmo Twister Mersenne. Para volver al comportamiento anterior, utilice mt_srand() con `MT_RAND_PHP` como segundo parámetro.

### Ejemplos

Ejemplo #1 Ejemplo con mt_rand()

    <?php
    echo mt_rand(), "\n";
    echo mt_rand(), "\n";

    echo mt_rand(5, 15), "\n";
    ?>

Resultado del ejemplo anterior es similar a:

    1604716014
    1478613278
    6

### Notas

Advertencia

El rango `min` `max` debe estar dentro del rango mt_getrandmax(). es decir, (`max` - `min`) <= mt_getrandmax() de lo contrario, mt_rand() puede devolver números aleatorios de menor calidad de lo que debería.

### Ver también

- mt_srand() - Inicializa el generador de números aleatorios Mersenne Twister
- mt_getrandmax() - El valor aleatorio más grande posible
- random_int() - Obtiene un integer seleccionado de manera uniforme y criptográficamente segura
- random_bytes() - Obtiene bytes aleatorios criptográficamente seguros

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open