Generátor náhodných čísel
Možnosti
Výstup
Technické detaily
Jak funguje generátor náhodných čísel
Co nástroj dělá
Generátor náhodných čísel vytváří kryptograficky silná náhodná celá čísla nebo čísla s plovoucí desetinnou čárkou pomocí Web Crypto API (crypto.getRandomValues). Používá odmítací vzorkování (rejection sampling) k odstranění modulo zkreslení a zajišťuje rovnoměrné rozdělení v libovolném zadaném rozsahu. Můžete generovat jednotlivé hodnoty nebo dávky náhodných čísel s nastavitelným minimem, maximem a přesností.
Běžné případy použití pro vývojáře
Vývojáři používají kryptografické generátory náhodných čísel pro bezpečnostně citlivé úlohy, jako je generování neuhodnutelných session tokenů, nonce, losů do loterie nebo náhodné vzorkování z datových sad. Herní vývojáři je používají pro hody kostkou a procedurální generování, když záleží na férovosti. QA inženýři generují náhodné testovací vstupy pro fuzz testing a datoví vědci je používají pro náhodné vzorkování, když není vyžadována reprodukovatelnost.
Datové formáty, typy nebo varianty
Nástroj podporuje generování celých čísel v libovolném rozsahu (včetně krajních hodnot) a generování čísel s plovoucí desetinnou čárkou s nastavitelnou desetinnou přesností. Odmítací vzorkování zahazuje hodnoty, které by způsobily modulo zkreslení, když rozsah rovnoměrně nedělí výstupní prostor náhodného zdroje. Základní entropie pochází z CSPRNG operačního systému (CryptGenRandom ve Windows, /dev/urandom na Unixu) zpřístupněného přes Web Crypto API prohlížeče.
Běžné nástrahy a okrajové případy
Kryptografická náhodnost je pomalejší než Math.random() a je zbytečná pro nebezpečnostní použití, jako je zamíchání playlistu. Odmítací vzorkování může teoreticky opakovat smyčku mnohokrát u patologických rozsahů, i když v praxi je to zanedbatelné. Náhodná čísla generovaná v prohlížeči nelze seedovat pro reprodukovatelnost — pokud potřebujete deterministické sekvence pro testování, použijte místo toho seedovaný PRNG. Maximální bezpečný rozsah celých čísel je omezen JavaScriptovou hodnotou Number.MAX_SAFE_INTEGER (2^53 - 1).
Kdy použít tento nástroj vs. kód
Použijte tento nástroj v prohlížeči, když potřebujete rychlé nezaujaté náhodné číslo pro jednorázové rozhodnutí, ruční testování nebo ověření, že vaše vlastní implementace produkuje hodnoty v očekávaných rozsazích. Pro produkční použití volejte crypto.getRandomValues() přímo ve svém kódu nebo použijte nativní CSPRNG funkce daného jazyka (modul secrets v Pythonu, SecureRandom v Javě), které se integrují se zpracováním chyb a logováním vaší aplikace.