Kust alustada
Loe artiklit sellest, mis on juhuslike arvude generaator: riistvaralised, pseudojuhuslikud ja krüptograafiliselt turvalised generaatorid, miks arvud korduvad ning mida brauser suudab pakkuda. Kui vajad selgituste asemel arve, genereerib juhuslike arvude generaator need otse sinu brauseris mis tahes vahemikus, kordustega või ilma.
Kus generaatorid märkamatult eksivad
Tugev juhuslikkuse allikas on vaid pool tööst. Teine pool on selle toorväärtuste sobitamine sinu vahemikku ning just seal paljud omatehtud lahendused ebaõnnestuvad. Väärtuse võtmine modulo järgi vahemiku suurusega tundub ilmne lähenemine, kuid see tekitab märkamatu nihke: kui vahemiku suurus ei jaga allika tulemuste ruumi täpselt võrdselt, esinevad vahemiku väiksemad arvud veidi sagedamini kui teised. Seda viga nimetatakse modulo-nihkeks (modulo bias). Üks lahendus on tagasilükkamisega valimivõtt (rejection sampling): heita ebaühtlasesse sabasse langevad väärtused kõrvale ja võtta uus väärtus. Meie generaator teeb just seda, nii et igal arvul sinu vahemikus on igal loosimisel täpselt võrdne võimalus.
Sama loogika välistab otseteed, mille poole inimesed sageli esimesena pöörduvad. Math.random() ei luba midagi turvalisuse kohta ning tabelarvutusprogrammide funktsioonid nagu RAND() ja RANDBETWEEN() kuuluvad samasse klassi: need sobivad ligikaudseks segamiseks, kuid ei kõlba millekski, mida keegi võiks vaidlustada.
Arvud, nimekirjad ja täringud
Juhuslike arvude generaator annab arve sinu määratud vahemikust. Tööriist juhuslik valik nimekirjast töötab sinu sisestatud nimekirjaga — nimed, osalejad, valikud —, nii et sa ei pea kunagi arve ridadega käsitsi kokku viima. Lauamängude jaoks veeretab täringuveeretaja täringuid ja liidab tulemused kokku, kahe valiku vahel otsustamiseks piisab tööriistast kull või kiri. Kui juhuslikkus peab otsustamise asemel midagi kaitsma, kasuta tugevate paroolide generaatorit. Kõik need kasutavad sinu brauseris sama krüptograafiliselt turvalist allikat.