Generator nasumičnih brojeva
Opcije
Izlaz
Tehnički detalji
Kako radi generator slučajnih brojeva
Što alat radi
Generator slučajnih brojeva proizvodi kriptografski snažne slučajne cijele brojeve ili brojeve s pomičnim zarezom koristeći Web Crypto API (crypto.getRandomValues). Koristi rejection sampling kako bi uklonio modulo pristranost, osiguravajući uniformnu distribuciju u bilo kojem zadanom rasponu. Možete generirati pojedinačne vrijednosti ili serije slučajnih brojeva uz podesive postavke minimuma, maksimuma i preciznosti.
Uobičajeni slučajevi upotrebe za razvojne programere
Programeri koriste kriptografske generatore slučajnih brojeva za sigurnosno osjetljive zadatke poput generiranja nepredvidivih tokena sesije, nonce vrijednosti, odabira za lutriju ili slučajnog uzorkovanja iz skupova podataka. Razvojni programeri igara koriste ih za bacanje kocke i proceduralno generiranje kada je važna pravednost. QA inženjeri generiraju slučajne testne ulaze za fuzz testiranje, a podatkovni znanstvenici koriste ih za slučajno uzorkovanje kada reproduktivnost nije potrebna.
Formati podataka, vrste ili varijante
Alat podržava generiranje cijelih brojeva unutar proizvoljnog raspona (uključive granice) i generiranje brojeva s pomičnim zarezom uz podesivu decimalnu preciznost. Rejection sampling odbacuje vrijednosti koje bi uzrokovale modulo pristranost kada raspon ne dijeli ravnomjerno izlazni prostor izvora slučajnosti. Temeljna entropija dolazi iz CSPRNG-a operacijskog sustava (CryptGenRandom na Windowsu, /dev/urandom na Unixu) dostupnog kroz Web Crypto API preglednika.
Uobičajene zamke i rubni slučajevi
Kriptografska slučajnost je sporija od Math.random() i nepotrebna za nesigurnosne namjene poput miješanja playliste. Rejection sampling teoretski može vrtjeti mnogo puta za patološke raspone, iako je u praksi to zanemarivo. Slučajni brojevi generirani u pregledniku ne mogu se seedati radi reproduktivnosti — ako trebate determinističke nizove za testiranje, umjesto toga koristite seedani PRNG. Maksimalni raspon sigurnih cijelih brojeva ograničen je JavaScriptovim Number.MAX_SAFE_INTEGER (2^53 - 1).
Kada koristiti ovaj alat umjesto koda
Koristite ovaj alat u pregledniku kada trebate brz, nepristran slučajni broj za jednokratnu odluku, ručno testiranje ili provjeru da vaša implementacija daje vrijednosti unutar očekivanih raspona. Za produkcijsku upotrebu pozovite crypto.getRandomValues() izravno u svom kodu ili koristite izvorne CSPRNG funkcije jezika (modul secrets u Pythonu, SecureRandom u Javi) koje se integriraju s rukovanjem pogreškama i zapisivanjem (logging) vaše aplikacije.