Générateur pseudo-aléatoire
Aussi appelé : RNG, PRNG, générateur de nombres aléatoires
Algorithme qui produit des suites de nombres paraissant aléatoires, mais entièrement déterminées par une valeur de départ appelée graine.
Un générateur pseudo-aléatoire est un algorithme qui produit des suites de nombres paraissant aléatoires, mais en réalité entièrement déterminées par une valeur de départ appelée graine. Le terme « pseudo » est important : ces nombres imitent le hasard sans en être, car ils résultent d'un calcul exact et reproductible.
Une image éclaire le principe : une recette de cuisine très longue qui, à partir d'un seul ingrédient initial, enchaîne des milliers d'étapes mécaniques. Le plat final paraît imprévisible tant on ignore le détail des opérations, mais la recette donne toujours le même résultat à partir du même ingrédient de départ.
Concrètement, le générateur part de la graine, lui applique une transformation mathématique pour produire un premier nombre, puis réutilise ce nombre pour calculer le suivant, et ainsi de suite. Chaque valeur découle de la précédente. La suite est donc parfaitement déterminée : avec une graine donnée, le générateur reproduit exactement la même séquence, à l'identique, autant de fois qu'on le relance.
C'est ici que se loge la principale idée reçue : penser qu'un ordinateur fabrique du vrai hasard. Il n'en fabrique pas. Une machine ne fait qu'exécuter des instructions, et un calcul reste un calcul. Pour obtenir une imprévisibilité réelle, on alimente le plus souvent la graine avec une source extérieure variable, par exemple l'instant précis du lancement, afin que la suite change à chaque fois.
Malgré cette nature déterministe, la qualité de ces générateurs est largement suffisante pour les usages ludiques et décisionnels. C'est ce mécanisme qui fait tourner pile ou face, les dés, la roue et le tirage au sort du site, en garantissant des résultats imprévisibles en pratique et équitables entre toutes les issues possibles.
Exemple
Le tirage au sort du site appelle un générateur pseudo-aléatoire pour choisir un gagnant parmi les participants.