Potřebujete rychlý a spravedlivý způsob, jak získat náhodné číslo? Tento bezplatný online generátor náhodných čísel vylosuje jedno číslo — nebo celý seznam čísel — v libovolném rozsahu, který si zvolíte, od jednoduchého rozsahu 1 až 10 až po rozsahy v řádu miliard. Nastavte minimální a maximální hodnotu v polích „Min“ a „Max“, v poli „Počet“ zvolte, kolik čísel potřebujete, a stiskněte „Generovat“. Obě hranice jsou zahrnuté, takže rozsah 1 až 10 může vrátit jak 1, tak 10.
Každý výsledek vzniká přímo ve vašem prohlížeči pomocí Web Crypto API (crypto.getRandomValues) — které poskytuje kryptograficky silné náhodné hodnoty ze zdroje náhodnosti poskytovaného operačním systémem. Nic se neodesílá na server, nic se nezaznamenává, a vaše čísla nikdy nevidíme. Generování je okamžité, soukromé a funguje i na pomalém připojení poté, co se stránka jednou načte.
Možnosti jsou vytvořené pro situace, kdy lidé náhodná čísla skutečně potřebují. Zapněte „Bez opakování“, aby se žádné číslo neobjevilo dvakrát — přesně to, co potřebujete pro tomboly, losování nebo rozdělení lidí do skupin bez opakování. Potřebujete dvacet výherců z 500 účastníků? Nastavte „Min“ na 1 a „Max“ na 500, zapněte „Bez opakování“, nastavte „Počet“ na 20 a stiskněte „Generovat“. „Řazení“ uspořádá výsledek vzestupně nebo sestupně, a jedno tlačítko zkopíruje všechny výsledky. Když přepnete „Formát výstupu“ z „Nový řádek“ na „Odděleno mezerami“ nebo „Odděleno čárkami“, objeví se „Počet sad“: několik nezávislých losování najednou — například dvacet sad po třech číslech pro dvacet kol losování — přičemž „Povolit duplicity mezi sadami“ určuje, zda se stejné číslo může objevit ve více než jedné z nich.
Jak vlastně náhodnost vzniká? Váš prohlížeč poskytuje kryptograficky silné náhodné hodnoty přes Web Crypto API, a ne přes JavaScriptový PRNG, jako je Math.random(). Když stisknete „Generovat“, stránka požádá o náhodné hodnoty pomocí crypto.getRandomValues a použije je k vytvoření čísel v rámci zvoleného rozsahu. Zdroj náhodnosti poskytuje operační systém, takže stránka nemusí udržovat vlastní semínko (seed) ani pseudonáhodnou posloupnost.
Převod syrové hodnoty na váš rozsah je přesně to místo, kde generátory tiše chybují, a zaslouží si vlastní odstavec. Vzít hodnotu modulo velikost rozsahu je zjevný postup — a zkreslený: pokud se rozsah nedělí přesně do 2^32, nejnižší čísla se objevují o něco častěji než ostatní. Tato chyba se nazývá modulo bias a je měřitelná, ne jen teoretická. Tento generátor místo toho zahodí každou hodnotu nad největší přesný násobek rozsahu a losuje znovu — technika zvaná rejection sampling. Stojí to pár losování navíc, ale zajišťuje to, že každé číslo mezi „Min“ a „Max“ má přesně stejnou pravděpodobnost, ne jen skoro stejnou.
Co dělá číslo opravdu náhodným? Číslo je dostatečně náhodné, když předchozí výsledky nic neříkají o dalším — a v praxi existují tři úrovně tohoto principu. Běžná pseudonáhodná funkce, jako je Math.random(), používá deterministický algoritmus: kdokoli, kdo zná její vnitřní stav, dokáže reprodukovat celou posloupnost, což je fajn na zamíchání prezentace, ale nevhodné pro cokoli, kde výsledek nesmí být předvídatelný. Kryptograficky bezpečný generátor (CSPRNG) — úroveň, kterou tento nástroj používá — je také algoritmus, ale je navržený tak, aby vytvářel nepředvídatelné hodnoty z bezpečného zdroje systémové náhodnosti, a je postavený tak, že pozorování jeho výstupů by nemělo umožnit předpovědět následující hodnoty. Fyzická náhodnost, ze zdrojů jako atmosférický šum nebo radioaktivní rozpad, představuje samostatnou úroveň, i když praktický rozdíl mizí, jde-li o losování čísla z rozsahu. Přesně proto prohlížeče nabízejí samostatné kryptografické API místo toho, aby jen vylepšovaly Math.random(): tyto dva přístupy řeší odlišné problémy, a bezpečný je jen jeden z nich, když na výsledku někomu záleží.
Náhodná posloupnost nemusí lidem připadat náhodná. Vylosujte deset čísel mezi 1 a 10 a pravidelně uvidíte opakování, opakování jako 7, 7, 8, nebo krátkou řadu, která celá padne vysoko — a každá z těchto situací je naprosto běžná. Skutečná náhodnost je nepředvídatelná, ne rovnoměrně rozložená: každé losování je nezávislé, předchozí čísla nemají na další naprosto žádný vliv, a žádné číslo nikdy není víc „na řadě“ než jiné. Instinkt, který tvrdí opak, je hráčský klam, a je to stejný instinkt, který dělá z lidí špatné generátory čísel — když nás požádají, abychom vymysleli náhodnou posloupnost, vyhýbáme se opakováním a rozdělujeme hodnoty mnohem rovnoměrněji, než to kdy dělá náhoda. Výsledek, který vypadá podezřele uklizeně, je otisk člověka; skutečná náhodnost vytváří shluky.
Proč zvolit tento generátor náhodných čísel?
- Generování jen v prohlížeči: čísla vznikají na vašem zařízení a nikam se neodesílají
- Náhodnost přes Web Crypto API: kryptograficky bezpečná, ne Math.random()
- Žádný modulo bias: rejection sampling udržuje každé číslo v rozsahu stejně pravděpodobné
- Libovolný rozsah: od 1 do 10 až po hodnoty v řádu miliard, obě hranice zahrnuté
- Režim „Bez opakování“: vylosujte seznam bez opakování pro tomboly a rozdělení do skupin
- Více sad: několik nezávislých losování jedním kliknutím
- Řazení a formáty výstupu: vzestupně nebo sestupně, nový řádek, mezery nebo čárky
- Historie a uložení do souboru: uchovejte si záznam losování, který možná budete muset doložit
- Neomezené a zdarma: bez registrace, bez limitů používání, nic se neukládá na naše servery
Náhodná čísla se objevují na mnohem více místech, než si většina lidí myslí. Učitelé vyvolávají žáky, aniž by někoho zvýhodňovali. Streameři a marketéři losují výherce dárkových akcí a tombol před publikem, které musí výsledku věřit. Hráči nahrazují ztracenou kostku nebo určují, kdo začíná, a turnaje losují startovní pořadí. Výzkumníci vybírají náhodný vzorek, aby se jejich zjištění dala zobecnit i na lidi, kteří se výzkumu neúčastnili. Vývojáři generují testovací data, inicializují simulace semínkem (seed) a vybírají identifikátory během QA. Společným jmenovatelem je náhodný výběrový proces, který lze později vysvětlit: protože losování využívá kryptografickou náhodnost a probíhá zcela na vašem zařízení, můžete ukázat, jak výsledek vznikl, pokud to někdo zpochybní.
Tento generátor má několik omezení, o kterých stojí za to vědět. Režim „Bez opakování“ nedokáže vylosovat víc čísel, než rozsah obsahuje: dvacet jedinečných hodnot mezi 1 a 10 prostě neexistuje. Losování jsou nezávislá a předchozí výsledky neovlivňují další, takže obnovení stránky nenuluje žádný cyklus — žádný cyklus, ve kterém by bylo možné být, totiž neexistuje. A i když jsou čísla kryptograficky silná, losování je tady spravedlivý výběr, ne předpověď: oficiální slosování loterií používá vlastní fyzické nebo certifikované vybavení, a to, co vygeneruje váš prohlížeč, s nimi nemá žádnou souvislost. V rámci těchto mezí je záruka o to silnější: každé číslo ve vašem rozsahu má přesně stejnou šanci, při každém losování.