Tirer un nombre aléatoire en PHP

Il est parfois nécessaire dans un script PHP d'obtenir un nombre aléatoire (ex. jeux de hasard, tirage au sort, …). En PHP, il existe plusieurs fonctions pour obtenir le tirage d'un nombre aléatoire, notamment : rand() et mt_rand().

Testé sous PHP 4, PHP 5 et PHP 7

Différence entre rand() et mt_rand()

Il existe peut de différences entre les deux fonctions, la principale se situe au niveau de temps d'exécution. En effet mt_rand() est 4 fois plus rapide que rand(). Une autre petite différence se situe au niveau de la probabilité du tirage qui est biaisé par les nombres paires pour les versions de PHP compilées sur les architectures 64-bits lorsque le paramètre max est au-delà de 2^32 pour la mt_rand().

Exemples

La syntaxe des deux fonctions sont identiques.

rand(min,max);
mt_rand(min,max);

Les valeurs min et max sont optionnelles. min correspond a la valeur minimale du tirage. Si elle n'est pas précisée, la valeur par défaut est 0. max est la valeur maximale du tirage. Si elle n'est pas précisée, la valeur par défaut est par la valeur déclarée par mt_getrandmax()

Voici un script PHP qui affiche un chiffre compris entre 5 et 15.

<?php
$min = 5;
$max = 15;
echo mt_rand($min,$max);
?>

Notes de version

  • [27/12/2015] : Article initial
  • [17/11/2017] : Mise à jour de l'article et harmonisation de la page

Auteurs et sources