Muitos geradores de números aleatórios das libcs antigas são duvidosos ou com características duvidosas e lentos. Por default, o PHP utiliza o gerador de números aleatórios da libc para a função rand(). A função mt_rand() é um bom substituto para a primeira. Ela utiliza um gerador de números aleatórios com características conhecidas, o Mersenne Twister, que produzirá números randômicos que podem ser utilizados como sementes em alguns tipos de criptografia (Veja a página para mais detalhes) e é em média quatro vezes mais rápido do que o fornecido pela libc.
Se chamada sem os argumentos opcionais min
e
max
, mt_rand()
retorna um pseudo número aletório enrte 0 e
RAND_MAX. se você precisa de um número randômico
entre 5 e 15 (inclusive), por exemplo, utilize mt_rand
(5, 15).
Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.
Nota: Em versões anteriores a 3.0.7, o significado do parâmetro
max
erarange
. Assim, para obter os mesmos resultados do exemplo acima, você precisaria utilizar rand (5, 11) para obter um número aleatório entre 5 e 15.
Veja também mt_srand(), mt_getrandmax() e rand().