Le vrai hasard existe-t-il ? PRNG, TRNG et boules de loto

Un ordinateur fait toujours exactement ce que dit son programme. Comment peut-il alors tirer des numéros au hasard ? La réponse : il existe deux sortes de générateurs, et un seul est vraiment aléatoire.
Le pseudo-hasard (PRNG) : du hasard calculé
Un générateur pseudo-aléatoire (PRNG) est une formule. On lui donne une valeur de départ, la « graine » (seed), et il en calcule une longue suite de nombres qui a l'air aléatoire. Mais même graine, même suite. Nous l'avons vérifié avec le générateur standard de Python en tirant 6 numéros sur 49 :
| Graine | Numéros tirés |
|---|---|
| 42 | 2 · 8 · 15 · 16 · 18 · 41 |
| 42 (une seconde fois) | 2 · 8 · 15 · 16 · 18 · 41 |
| 43 | 3 · 10 · 19 · 24 · 30 · 45 |
Qui connaît la graine connaît les numéros. Beaucoup de programmes prennent simplement l'heure comme graine, c'est-à-dire le nombre de secondes depuis le 1er janvier 1970. Pour une simulation, c'est pratique, car on peut refaire exactement le même calcul. Pour une loterie, ce serait dangereux.
Le vrai hasard (TRNG) : du hasard physique
Un vrai générateur aléatoire (TRNG) mesure un phénomène physique imprévisible : le bruit électronique dans une résistance, la désintégration d'atomes radioactifs, ou des grains de lumière qui traversent ou rebondissent sur un miroir semi-transparent. Dans ces deux derniers cas, on parle de hasard quantique : selon nos connaissances actuelles, le résultat est imprévisible par nature.
Un exemple connu : l'entreprise Internet Cloudflare filme un mur de lampes à lave dans ses bureaux de San Francisco et utilise ces images en perpétuel changement comme source de hasard.
En pratique, on combine les deux : un TRNG fournit la graine, puis un PRNG certifié produit rapidement beaucoup de numéros. C'est ainsi que fonctionnent la plupart des systèmes de tirage électronique des loteries.
Et les boules de loto ?
Une machine de tirage est un générateur de hasard physique. Les boules s'entrechoquent des milliers de fois ; la moindre différence au départ donne un tout autre résultat. S'y ajoute la transparence : le tirage est filmé et contrôlé. Nous avons vérifié sur des milliers de tirages que les boules sortent de façon équilibrée, dans l'article sur les machines de tirage.
Comment teste-t-on le hasard ?
On ne peut jamais prouver avec certitude qu'une suite est aléatoire. On peut en revanche vérifier qu'elle se comporte comme du hasard. L'institut américain des normes (NIST) a publié une série de tests pour cela (SP 800-22) : y a-t-il autant de 0 que de 1 ? Des séries trop longues ? Des motifs qui se répètent ? Les générateurs certifiés des loteries doivent les réussir.
Mais ces tests ont une limite : ils ne protègent pas contre quelqu'un qui manipule le générateur de l'intérieur. C'est exactement ce qui s'est passé dans l'affaire Eddie Tipton. Là, ce sont la vérification du code, la séparation des rôles et le contrôle qui protègent.
Et le générateur de Lottochaos ?
Notre générateur de grilles utilise la fonction crypto.getRandomValues de votre navigateur. C'est un générateur cryptographiquement sûr, alimenté par le système d'exploitation avec des événements physiques. Les numéros sont créés sur votre appareil et ne sont enregistrés nulle part.
Boules ou ordinateur certifié : dans un tirage correctement mené, chaque combinaison a exactement la même chance. Une grille « flash » n'est ni plus ni moins chanceuse que tes propres numéros. Elle est seulement moins souvent partagée, parce qu'elle ne suit aucun motif.
L'affaire Eddie TiptonDes motifs dans le hasardTest du hasard
Notre calcul : Python random (Mersenne Twister), sample(1–49, 6), graines 42 et 43.