Ar ko sākt
Izlasiet, kas ir nejaušu skaitļu ģenerators: aparatūras, pseidonejauši un kriptogrāfiski droši ģeneratori, kāpēc skaitļi atkārtojas un ko piedāvā pārlūkprogramma. Ja nepieciešami skaitļi, nevis skaidrojums, nejaušu skaitļu ģenerators ģenerē tos jūsu pārlūkprogrammā jebkurā diapazonā, ar vai bez atkārtojumiem.
Kur ģeneratori klusi pieļauj kļūdas
Spēcīgs nejaušības avots ir tikai puse no uzdevuma. Otra puse ir neapstrādāto vērtību pārnešana uz jūsu diapazonu, un tieši šeit daudzi paštaisīti ģeneratori kļūdās. Dalījuma atlikuma (modulo) aprēķināšana pēc diapazona lieluma šķiet pašsaprotama pieeja, taču tā rada slēptu nevienmērību: ja vien diapazona lielums nedala avota vērtību kopu bez atlikuma, mazākie skaitļi diapazonā parādās nedaudz biežāk nekā pārējie. Šo trūkumu sauc par atlikuma nobīdi (modulo bias). Viens no risinājumiem ir noraidīšanas atlase (rejection sampling): atmest vērtības, kas iekrīt nevienmērīgajā atlikumā, un izlozēt no jauna. Mūsu ģenerators rīkojas tieši tā, tāpēc katram skaitlim jūsu diapazonā katrā izlozē ir vienāda iespēja.
Tas pats iemesls liedz izmantot vienkāršākos risinājumus, pie kuriem cilvēki ķeras vispirms. Math.random() nesniedz nekādas drošības garantijas, un izklājlapu funkcijas, piemēram, RAND() un RANDBETWEEN(), pieder pie tās pašas kategorijas: tās ir piemērotas aptuvenai sajaukšanai, bet neder situācijām, ko kāds varētu apstrīdēt.
Skaitļi, saraksti un kauliņi
Nejaušu skaitļu ģenerators atgriež skaitļus no jūsu iestatītā diapazona. Nejauša izvēle no saraksta darbojas ar sarakstu, ko ielīmējat — vārdiem, ierakstiem, variantiem —, tāpēc jums nekad nevajadzēs manuāli piesaistīt skaitļus rindām. Galda spēlēm kauliņu ģenerators met kauliņus un saskaita kopsummu, bet izvēlei starp diviem variantiem pietiek ar monētas mešanu. Kad nejaušībai ir kaut kas jāaizsargā, nevis jāizlemj, izmantojiet drošu paroļu ģeneratoru. Visi šie rīki jūsu pārlūkprogrammā izmanto vienu un to pašu kriptogrāfiski drošo avotu.