Numeri casuali veri o pseudocasuali: differenze, seme e sorteggi verificabili

Quando un sito ti genera un numero a caso, quanto è davvero casuale? La risposta dipende dal tipo di generatore: pseudo-casuale, crittografico o basato su fenomeni fisici. In questa guida vedi le differenze, quale basta per ogni uso, perché un seme riproducibile rende un sorteggio verificabile e perché nessun metodo può aumentare le vincite al Lotto. Puoi provare tutto con il generatore di numeri casuali.

Tre tipi di casualità

TipoCome funzionaEsempioPrevedibile?
Pseudo-casuale (PRNG)Formula matematica che, da un valore iniziale (seme), produce una sequenza dall'aspetto casualeMath.random() in JavaScriptSì, se si conosce il seme o lo stato interno
Crittografico (CSPRNG)Generatore progettato per resistere alla previsione, alimentato con entropia del sistema operativocrypto.getRandomValues() del browserNo, in pratica
Casualità fisicaMisura di un fenomeno imprevedibile, come il rumore atmosferico o il decadimento radioattivoServizi come random.org (rumore atmosferico)No, per natura

Generatori pseudo-casuali

Un PRNG è un algoritmo deterministico: dato lo stesso punto di partenza restituisce sempre la stessa sequenza. È velocissimo e va benissimo per giochi, simulazioni, scelte informali e dati di prova, perché i numeri hanno una buona distribuzione statistica. Il suo limite è la prevedibilità: chi osserva abbastanza risultati di certi generatori può risalire allo stato interno e anticipare i successivi. In JavaScript Math.random() è di questo tipo e la specifica del linguaggio non lo destina agli usi di sicurezza.

Generatori crittografici

Un CSPRNG è costruito per essere imprevedibile anche per chi conosce l'algoritmo e vede molti risultati. I browser lo mettono a disposizione con la Web Crypto API (crypto.getRandomValues), alimentata dal sistema operativo con l'entropia raccolta dall'hardware e dal sistema. È la scelta giusta per password, token, chiavi e per qualunque estrazione in cui qualcuno potrebbe avere interesse a barare. Lo strumento genera password si basa su questo principio; per capire quanto vale una password scelta a caso leggi la guida su entropia di password e passphrase.

Casualità fisica

La casualità "vera" viene da fenomeni fisici che non si possono prevedere con una formula, come il rumore atmosferico misurato da servizi come random.org. È affascinante ma raramente necessaria: un buon generatore crittografico è già imprevedibile per qualunque scopo pratico, e le sorgenti fisiche sono più lente e richiedono di fidarsi di un servizio esterno.

Quale scegliere

Il seme: perché lo stesso seme dà lo stesso risultato

Il seme (seed) è il valore iniziale del PRNG. Se due persone usano lo stesso algoritmo con lo stesso seme, ottengono la stessa identica sequenza. Sembra un difetto, ma è proprio ciò che permette il sorteggio verificabile: se pubblichi il seme, la lista dei partecipanti e le regole, chiunque può ripetere l'estrazione e controllare che l'esito sia quello dichiarato.

Perché abbia valore, il seme va fissato e comunicato prima di conoscere il risultato. Se l'organizzatore potesse provare più semi e scegliere quello che gli piace, la verifica perderebbe senso. Una buona prassi è pubblicare in anticipo il seme (o un suo hash) e chiudere l'elenco dei partecipanti, poi pubblicare tutto il resto. Nel generatore, la sorgente Riproducibile (seme) mostra il seme, l'ora e un link che rifà la stessa estrazione, e la scheda Sorteggio da lista applica lo stesso metodo ai nomi di una lista.

Il modulo bias e il rejection sampling

Un errore classico: ottenere un numero da 0 a 255 e farne il resto della divisione per 10 per ottenere una cifra da 0 a 9. Poiché 256 non è multiplo di 10, i valori da 0 a 5 compaiono 26 volte e quelli da 6 a 9 solo 25: le prime sei cifre diventano leggermente più probabili. Questo si chiama modulo bias. Con intervalli piccoli rispetto al numero di valori disponibili la distorsione è minima, ma esiste e in un sorteggio vero non è accettabile.

La soluzione è il rejection sampling: si scartano i valori che cadono nella parte "in eccesso" (qui 250-255) e si estrae di nuovo, così ogni cifra ha esattamente lo stesso numero di possibilità. Un buon generatore lo applica senza che tu debba pensarci.

Lotto e SuperEnalotto: nessun metodo aumenta le vincite

Ogni combinazione di numeri ha esattamente la stessa probabilità di uscire: 1-2-3-4-5-6 è altrettanto probabile di una sequenza che "sembra casuale". Le estrazioni sono indipendenti, quindi un numero uscito molto o poco di recente non ha più o meno possibilità di uscire la volta dopo (l'errore opposto si chiama fallacia del giocatore). Per il SuperEnalotto, il 6 si ottiene indovinando sei numeri su novanta, con una probabilità di 1 su 622.614.630. Un generatore come quello per il Lotto serve per scegliere i numeri senza pensarci, non per vincere di più. Gioca solo se ti diverte, con importi che puoi permetterti.

Domande frequenti

Math.random va bene per un sorteggio?
Per un gioco o una scelta informale sì, ma non è pensato per usi in cui conta la sicurezza o l'equità verificabile: non è un generatore crittografico e il seme non è controllabile né comunicabile. Per sorteggi seri conviene la sorgente crittografica del browser oppure un'estrazione con seme pubblicato.
I numeri casuali di un computer sono davvero casuali?
Un generatore pseudo-casuale è deterministico: dallo stesso seme produce sempre la stessa sequenza, ma ha proprietà statistiche ottime per quasi tutti gli usi. Un generatore crittografico parte da entropia raccolta dal sistema operativo ed è imprevedibile in pratica. Solo la casualità di origine fisica è casuale nel senso stretto.
Perché comunicare il seme prima del sorteggio?
Perché chi lo conosce può rifare l'estrazione e controllare il risultato. Se il seme viene fissato e reso pubblico prima di conoscere l'esito, e le partecipazioni sono chiuse, nessuno può scegliere un seme comodo a posteriori.
Esiste un metodo per vincere al Lotto o al SuperEnalotto?
No. Ogni combinazione ha la stessa probabilità di uscire, e le estrazioni passate non influenzano quelle future. I numeri ritardatari o le formule non cambiano le probabilità: un generatore serve a sceglierli per comodità, non a vincere di più.
Cos'è il modulo bias?
È una distorsione che si verifica quando si riduce un numero casuale a un intervallo con l'operatore resto senza che l'intervallo divida esattamente i valori possibili: alcuni risultati diventano leggermente più probabili. Si evita scartando i valori in eccesso e riestraendo, tecnica detta rejection sampling.

← Tutte le guide