Hol érdemes kezdeni
Olvasd el, mi az a véletlenszám-generátor: hardveres, pszeudovéletlen és kriptográfiailag biztonságos generátorok, miért ismétlődnek a számok, és mit kínál a böngésző. Amikor magyarázat helyett számokra van szükséged, a véletlenszám-generátor tetszőleges tartományban előállítja őket a böngésződben, ismétlődéssel vagy anélkül.
Ahol a generátorok észrevétlenül hibáznak
A megbízható véletlenforrás még csak a feladat fele. A másik fele a nyers értékek leképezése a kívánt tartományra, és sok házilag készített generátor éppen ezen a ponton bukik el. A tartomány méretével vett osztási maradék kézenfekvő megközelítésnek tűnik, de finom részrehajlást eredményez: hacsak a tartomány mérete nem osztja pontosan egyenlő részekre a forrás értékkészletét, a tartomány legkisebb számai valamivel gyakrabban bukkannak fel, mint a többiek. Ezt a jelenséget maradékképzési részrehajlásnak (modulo bias) nevezik. Az egyik megoldás az elutasításos mintavételezés (rejection sampling): a forrás egyenetlen végébe eső értékeket elvetjük, és újat sorsolunk. A mi generátorunk így működik, így a tartományod minden száma pontosan azonos eséllyel indul minden egyes húzásnál.
Ugyanez az összefüggés zárja ki azokat a gyors megoldásokat is, amelyekhez az emberek legelőször nyúlnak. A Math.random() semmilyen biztonsági garanciát nem nyújt, a táblázatkezelők függvényei pedig, mint a RAND() és a RANDBETWEEN(), ugyanebbe a kategóriába tartoznak: egy durva keveréshez megteszik, de alkalmatlanok bármire, amit bárki kétségbe vonhatna.
Számok, listák és kockák
A véletlenszám-generátor az általad beállított tartományból ad vissza számokat. A véletlenszerű választó az általad beillesztett listán dolgozik — neveken, nevezéseken, lehetőségeken —, így a számokat sosem kell kézzel visszakeresned a sorokhoz. Társasjátékokhoz az online dobókocka eldobja a kockákat és összegzi az értékeket, két lehetőség közötti döntéshez pedig a fej vagy írás is elegendő. Amikor a véletlennek nem döntést kell hoznia, hanem védelmet kell nyújtania, használd az erős jelszavakat készítő generátort. Mindegyik ugyanabból a böngésződben futó, kriptográfiailag biztonságos forrásból merít.