Od čega početi
Pročitajte šta je generator slučajnih brojeva: hardverski, pseudonasumični i kriptografski sigurni generatori, zašto se brojevi ponavljaju i šta pretraživač nudi. Kada su vam potrebni brojevi umjesto objašnjenja, generator slučajnih brojeva izvlači ih u vašem pretraživaču u bilo kojem rasponu, sa ponavljanjem ili bez njega.
Gdje generatori neprimjetno griješe
Pouzdan izvor slučajnosti samo je pola posla. Druga polovina je preslikavanje njegovih sirovih vrijednosti na vaš raspon, a upravo tu griješe mnogi samostalno napisani generatori. Uzimanje ostatka pri dijeljenju vrijednosti s veličinom raspona očigledan je pristup, ali stvara neprimjetno nejednake šanse: osim ako veličina raspona ravnomjerno ne dijeli prostor rezultata izvora, najmanji brojevi u rasponu pojavljuju se nešto češće od ostalih. Ova mana naziva se odstupanje po modulu (modulo bias). Jedno od rješenja je uzorkovanje s odbacivanjem (rejection sampling): vrijednosti koje upadnu u neravnomjerni rep se odbacuju i izvlačenje se ponavlja. Naš generator radi upravo to, tako da svaki broj u vašem rasponu ima potpuno jednaku šansu pri svakom izvlačenju.
Isto razmatranje isključuje i prečice kojima ljudi prvo pribjegavaju. Math.random() ne obećava ništa po pitanju sigurnosti, a funkcije tabelarnih kalkulatora poput RAND() i RANDBETWEEN() pripadaju istoj klasi: dobre su za grubo miješanje, ali neprikladne za bilo šta što bi neko mogao osporiti.
Brojevi, liste i kockice
Generator slučajnih brojeva vraća brojeve iz raspona koji sami postavite. Alat za nasumični izbor s liste radi s listom koju unesete — imenima, prijavama, opcijama — tako da nikada ne morate ručno spajati brojeve s redovima. Za društvene igre bacanje kockica baca kockice i sabira rezultate, a za izbor između dvije opcije dovoljno je bacanje novčića. Kada slučajnost treba nešto da zaštiti, a ne da presudi, upotrijebite generator sigurnih lozinki. Svi oni koriste isti kriptografski siguran izvor u vašem pretraživaču.