Nga t'ia filloni
Lexoni se çfarë është një gjenerues numrash rastësorë: gjeneruesit harduerikë, pseudorastësorë dhe të sigurt kriptografikisht, pse përsëriten numrat dhe çfarë ofron shfletuesi. Kur keni nevojë për numra dhe jo për shpjegime, gjeneruesi i numrave rastësorë i tërheq ata në shfletuesin tuaj në çdo interval, me ose pa përsëritje.
Ku dështojnë gjeneruesit në heshtje
Një burim i fortë rastësie është vetëm gjysma e punës. Gjysma tjetër është shndërrimi i vlerave të papërpunuara në intervalin tuaj, dhe pikërisht këtu dështojnë shumë gjenerues të bërë vetë. Marrja e një vlere modulo madhësinë e intervalit është qasja më e dukshme, por ajo është e njëanshme në mënyrë të padukshme: përveç nëse madhësia e intervalit e pjesëton hapësirën e vlerave të burimit pa mbetje, numrat më të ulët në interval bien pak më shpesh se të tjerët. Ky defekt quhet njëanshmëri e modulos (modulo bias). Një zgjidhje është marrja e mostrave me refuzim (rejection sampling): hidhni poshtë vlerat që bien në mbetjen e pabarabartë dhe tërhiqni përsëri. Gjeneruesi ynë vepron pikërisht kështu, prandaj çdo numër në intervalin tuaj ka të njëjtin shans në çdo tërheqje.
I njëjti arsyetim përjashton edhe rrugët e shkurtra që njerëzit zgjedhin të parat. Math.random() nuk premton asgjë për sigurinë, dhe funksionet e tabelave si RAND() dhe RANDBETWEEN() i përkasin të njëjtës kategori: të përshtatshme për një përzierje të përafërt, të papërshtatshme për çdo gjë që dikush mund ta kundërshtojë.
Numra, lista dhe zare
Një gjenerues numrash rastësorë kthen numra nga një interval që e caktoni vetë. Mjeti për zgjedhje të rastësishme nga lista punon me një listë që ngjisni — emra, hyrje, alternativa —, kështu që nuk keni nevojë t'i lidhni numrat me rreshtat me dorë. Për lojërat në tavolinë hedhja e zareve hedh zaret dhe mbledh shumat e tyre, ndërsa për një zgjedhje midis dy mundësive mjafton hedhja e monedhës. Kur rastësia duhet të mbrojë diçka dhe jo thjesht të vendosë diçka, përdorni gjeneratorin e fjalëkalimeve të forta. Të gjithë ata bazohen në të njëjtin burim të sigurt kriptografikisht në shfletuesin tuaj.