Da dove iniziare
Leggi cos'è un generatore di numeri casuali: generatori hardware, pseudocasuali e crittograficamente sicuri, perché i numeri si ripetono e cosa mette a disposizione il browser. Quando ti servono direttamente i numeri anziché le spiegazioni teoriche, il generatore di numeri casuali li estrae nel tuo browser in qualsiasi intervallo, con o senza ripetizioni.
Dove i generatori falliscono silenziosamente
Disporre di una solida sorgente di casualità è solo metà dell'opera. L'altra metà consiste nel ricondurre i valori grezzi al tuo intervallo, ed è proprio qui che molti generatori artigianali falliscono. Calcolare il resto della divisione (modulo) rispetto all'ampiezza dell'intervallo è l'approccio più intuitivo, ma introduce una distorsione subdola: a meno che la dimensione dell'intervallo non divida esattamente lo spazio dei valori della sorgente, i numeri più bassi dell'intervallo si presentano con una frequenza leggermente superiore agli altri. Questo difetto è noto come distorsione da modulo (modulo bias). Una soluzione è il campionamento con rigetto (rejection sampling): scartare i valori che cadono nella coda irregolare ed estrarre nuovamente. Il nostro generatore adotta questo metodo, garantendo a ogni numero del tuo intervallo la stessa identica probabilità a ogni estrazione.
Lo stesso ragionamento esclude le scorciatoie a cui si ricorre più spesso. Math.random() non offre alcuna garanzia di sicurezza, e le funzioni dei fogli di calcolo come RAND() e RANDBETWEEN() appartengono alla stessa categoria: adatte per una mescolata veloce, inadeguate per qualsiasi contesto che qualcuno potrebbe contestare.
Numeri, elenchi e dadi
Un generatore di numeri casuali restituisce numeri all'interno di un intervallo specificato. L'estrazione casuale lavora su un elenco incollato dall'utente — nomi, partecipanti, opzioni — evitando di dover abbinare manualmente i numeri alle righe. Per i giochi da tavolo il lancio dadi tira i dadi e calcola il punteggio totale, mentre per scegliere tra due opzioni basta il lancio della moneta. Quando la casualità deve proteggere qualcosa anziché decidere qualcosa, usa il generatore di password sicure. Tutti questi strumenti attingono alla stessa sorgente crittograficamente sicura direttamente nel tuo browser.