Kje začeti
Preberite, kaj je generator naključnih števil: strojni, psevdonaključni in kriptografsko varni generatorji, zakaj se števila ponavljajo in kaj ponuja brskalnik. Ko potrebujete števila namesto razlage, jih generator naključnih števil ustvari v vašem brskalniku v poljubnem razponu, s ponavljanjem ali brez njega.
Kje generatorji neopazno odpovejo
Močan vir naključnosti je le polovica naloge. Druga polovica je preslikava njegovih surovih vrednosti v vaš razpon, in prav tu mnogi doma narejeni generatorji odpovejo. Uporaba ostanka pri deljenju z velikostjo razpona (modulo) je samoumeven pristop, ki pa je neopazno pristranski: razen če velikost razpona deli izhodni prostor vira brez ostanka, se najnižja števila v razponu pojavljajo nekoliko pogosteje kot ostala. Ta napaka se imenuje pristranskost modula (modulo bias). Ena od rešitev je vzorčenje z zavračanjem (rejection sampling): zavrzite vrednosti, ki padejo v neenakomerni ostanek, in žrebajte znova. Naš generator deluje prav tako, zato ima vsako število v vašem razponu pri vsakem žrebu enako možnost.
Enak premislek izključuje tudi bližnjice, po katerih ljudje posežejo najprej. Math.random() ne zagotavlja nobene varnosti, funkcije v preglednicah, kot sta RAND() in RANDBETWEEN(), pa spadajo v isti razred: primerne so za grobo premešanje, neprimerne pa za karkoli, kar bi kdo lahko izpodbijal.
Števila, seznami in kocke
Generator naključnih števil vrača števila iz razpona, ki ga sami določite. Naključni izbor s seznama deluje na seznamu, ki ga prilepite — imenih, vnosih, možnostih —, tako da vam števil nikoli ni treba ročno povezovati z vrsticami. Pri družabnih igrah metanje kock vrže kocke in sešteje skupne vrednosti, za izbiro med dvema možnostma pa zadostuje metanje kovanca. Kadar mora naključnost nekaj zaščititi in ne le odločiti, uporabite zanesljiv generator gesel. Vsi ti generatorji črpajo iz istega kriptografsko varnega vira v vašem brskalniku.