Gera um valor aleatório através do Gerador de Números Aleatórios Mersenne Twister

# mt_rand

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

mt_rand — Gera um valor aleatório através do Gerador de Números Aleatórios Mersenne Twister

### Descrição

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

Muitos geradores de números aleatórios de libcs mais antigos têm características duvidosas ou desconhecidas e são lentos. A função mt_rand() é um substituto imediato para a antiga rand(). Ele usa um gerador de números aleatórios com características conhecidas usando o » Mersenne Twister, que produzirá números aleatórios quatro vezes mais rápido do que o libc rand() médio fornece.

Se chamado sem os argumentos opcionais `min`, `max` mt_rand() retorna um valor pseudo-aleatório entre 0 e mt_getrandmax(). Se você quiser um número aleatório entre 5 e 15 (inclusive), por exemplo, use `mt_rand(5, 15)`.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Cuidado

Esta função usa a instância global do Mt19937 (“Mersenne Twister”) como a fonte de aleatoriedade a por isso compartilha seu estado com todas as outras funções que usam o Mt19937 global. Usar qualquer uma destas funções avança a sequência para todas as outras funções, independentemente do escopo.

Gerar sequências repetíveis ao semear mt_srand() ou srand() com um valor conhecido também gerará saída repetível desta função.

Prefira usar métodos de Random\Randomizer em todo código novo.

### Parâmetros

`min`

  Valor mais baixo opcional a ser retornado (padrão: 0)

`max`

  Valor mais alto opcional a ser retornado (padrão: mt_getrandmax())

### Valor Retornado

Um valor inteiro aleatório entre `min` (ou 0) e `max` (ou mt_getrandmax(), inclusive).

### Erros/Exceções

- Se `max` for menor que `min`, uma exceção ValueError será lançada.

### Registro de Alterações

Versão | Descrição
--- | ---
8.0.0 | Uma exceção ValueError será lançada se `max` for menor que `min`; anteriormente, um `E_WARNING` era emitido e a função retornava `false`.
7.2.0 | mt_rand() recebeu uma correção para um bug de descontinuação de módulo. Isso significa que as sequências geradas com uma semente específica podem ser diferentes do PHP 7.1 em máquinas de 64 bits.
7.1.0 | rand() foi transformado em um apelido de mt_rand().
7.1.0 | mt_rand() foi atualizado para usar a versão fixa e correta do algoritmo Mersenne Twister. Para voltar ao comportamento antigo, use mt_srand() com `MT_RAND_PHP` como segundo parâmetro.

### Exemplos

Exemplo #1 Exemplo de mt_rand()

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

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

O exemplo acima produzirá algo semelhante a:

    1604716014
    1478613278
    6

### Notas

Aviso

O intervalo `min` `max` deve estar dentro do intervalo mt_getrandmax(). Ou seja, (`max` - `min`) <= mt_getrandmax() Caso contrário, mt_rand() poderá retornar números aleatórios piores do que deveria.

### Veja Também

- mt_srand() - Semeia o Gerador de Números Aleatórios Mersenne Twister
- mt_getrandmax() - Mostra o maior valor aleatório possível
- random_int() - Obtém um número inteiro selecionado uniformemente e criptograficamente seguro
- random_bytes() - Obtém bytes aleatórios criptograficamente seguros

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