Odakle početi
Pročitajte što je generator slučajnih brojeva: hardverski, pseudonasumični i kriptografski sigurni generatori, zašto se brojevi ponavljaju i što preglednik nudi. Kada vam umjesto objašnjenja trebaju sami brojevi, generator slučajnih brojeva stvara ih izravno u vašem pregledniku u bilo kojem rasponu, s ponavljanjem ili bez njega.
Gdje generatori neprimjetno griješe
Snažan izvor slučajnosti samo je pola posla. Druga polovica je preslikavanje sirovih vrijednosti na vaš raspon, a upravo tu mnogi samostalno napisani generatori zakazuju. Računanje modula vrijednosti prema veličini raspona čini se kao očit pristup, no ono stvara suptilnu pristranost: osim ako veličina raspona točno ne dijeli izlazni prostor izvora, najmanji brojevi u rasponu pojavljivat će se malo češće od ostalih. Taj se nedostatak naziva pristranost modula (modulo bias). Jedno od rješenja je uzorkovanje odbacivanjem (rejection sampling): odbacite vrijednosti koje padaju u neravnomjerni ostatak i povucite ponovno. Naš generator radi upravo to, tako da svaki broj u vašem rasponu ima jednaku šansu pri svakom izvlačenju.
Isti razlog isključuje prečace za kojima ljudi najčešće prvo posegnu. Math.random() ne jamči nikakvu sigurnost, a funkcije proračunskih tablica kao što su RAND() i RANDBETWEEN() pripadaju istoj kategoriji: prikladne su za grubo miješanje, ali neprihvatljive za bilo što što bi netko mogao osporiti.
Brojevi, popisi i kockice
Generator slučajnih brojeva vraća brojeve iz raspona koji sami postavite. Alat za nasumični odabir s popisa radi s popisom koji zalijepite — imena, sudionici, opcije — tako da nikada ne morate ručno povezivati brojeve s recima. Za društvene igre bacanje kockica baca kockice i zbraja rezultate, a za odabir između dvije mogućnosti dovoljno je bacanje novčića. Kada slučajnost treba nešto zaštititi umjesto donijeti odluku, upotrijebite generator sigurnih lozinki. Svi oni koriste isti kriptografski siguran izvor u vašem pregledniku.