Generátor náhodných čísel

Vygenerujte náhodné číslo, zoznam alebo viac sád čísel v ľubovoľnom rozsahu — priamo vo vašom prehliadači, s kryptograficky bezpečnou náhodnosťou, nikdy na serveri.

Stlačte Generovať pre žrebovanie
Možnosti

Potrebujete rýchly a spravodlivý spôsob, ako získať náhodné číslo? Tento bezplatný online generátor náhodných čísel vygeneruje jedno číslo — alebo celý zoznam čísel — v ľubovoľnom rozsahu, ktorý si zvolíte, od jednoduchého rozsahu 1 až 10 až po rozsahy v ráde miliárd. Nastavte minimálnu a maximálnu hodnotu v poliach „Min“ a „Max“, zvoľte, koľko čísel potrebujete, v poli „Počet“, a stlačte „Generovať“. Obe hranice sú zahrnuté, takže rozsah 1 až 10 môže vrátiť ako 1, tak aj 10.

Každý výsledok vzniká priamo vo vašom prehliadači pomocou Web Crypto API (crypto.getRandomValues) — ktoré poskytuje kryptograficky silné náhodné hodnoty z kryptograficky bezpečného zdroja náhodnosti operačného systému. Nič sa neodosiela na server, nič sa nezaznamenáva, a vaše čísla nikdy nevidíme. Generovanie je okamžité, súkromné a funguje aj na pomalom pripojení po tom, čo sa stránka raz načíta.

Možnosti sú vytvorené pre situácie, v ktorých ľudia naozaj potrebujú náhodné čísla. Zapnite „Bez opakovania“, aby sa žiadne číslo neobjavilo dvakrát — presne to, čo potrebujete pre tomboly, žrebovania alebo rozdelenie ľudí do skupín bez opakovania. Potrebujete dvadsať výhercov z 500 účastníkov? Nastavte „Min“ na 1 a „Max“ na 500, zapnite „Bez opakovania“, nastavte „Počet“ na 20 a stlačte „Generovať“. „Poradie zoradenia“ usporiada výsledok vzostupne alebo zostupne, a jedno tlačidlo skopíruje všetky výsledky. Keď prepnete „Formát výsledku“ z „Zalomenie riadka“ na „Oddelené medzerami“ alebo „Oddelené čiarkami“, objaví sa „Počet sád“: niekoľko nezávislých sád naraz — napríklad dvadsať sád po troch číslach pre dvadsať kôl žrebovania — pričom „Povoliť duplicity medzi sadami“ určuje, či sa rovnaké číslo môže objaviť vo viac ako jednej z nich.

Ako vlastne vzniká náhodnosť? Váš prehliadač poskytuje kryptograficky silné náhodné hodnoty cez Web Crypto API, a nie cez JavaScriptový PRNG, akým je Math.random(). Keď stlačíte „Generovať“, stránka požiada o náhodné hodnoty pomocou crypto.getRandomValues a použije ich na vytvorenie čísel v zvolenom rozsahu. Zdroj náhodnosti poskytuje operačný systém, takže stránka nemusí udržiavať vlastný seed ani pseudonáhodnú postupnosť.

Prevod surovej hodnoty na váš rozsah je presne to miesto, kde generátory potichu chybujú, a zaslúži si vlastný odsek. Vziať hodnotu modulo veľkosť rozsahu je zjavný postup — a skreslený: pokiaľ sa rozsah nedelí presne 2^32, najnižšie čísla sa objavujú o niečo častejšie ako ostatné. Táto chyba sa nazýva modulo bias a je merateľná, nielen teoretická. Tento generátor namiesto toho zahodí všetky hodnoty, ktoré by po použití modulo operácie vytvorili skreslenie, a generuje znova — technika, ktorá sa nazýva rejection sampling. Môže to vyžadovať ďalšie pokusy, ale výmenou za to dáva presnú istotu: každé číslo medzi „Min“ a „Max“ má presne rovnakú pravdepodobnosť, nielen takmer rovnakú.

Čo robí číslo naozaj náhodným? Číslo je dostatočne náhodné vtedy, keď predchádzajúce výsledky nič nehovoria o ďalšom — a v praxi sa môžeme stretnúť s tromi rôznymi prístupmi. Bežná pseudonáhodná funkcia, akou je Math.random(), spúšťa deterministický algoritmus: ktokoľvek, kto pozná jej vnútorný stav, dokáže zreprodukovať celú postupnosť, čo je skvelé na zamiešanie prezentácie, ale nevhodné pre čokoľvek, kde výsledok nesmie byť predvídateľný. Kryptograficky bezpečný generátor (CSPRNG) — úroveň, ktorú využíva tento nástroj — je tiež algoritmus, ale je navrhnutý tak, aby vytváral nepredvídateľné hodnoty z bezpečného zdroja systémovej náhodnosti, a zostrojený tak, že sledovanie jeho výstupu neprezradí nič o tom, čo príde ďalej. Fyzická náhodnosť, zo zdrojov ako atmosférický šum alebo rádioaktívny rozpad, predstavuje iný prístup k náhodnosti, hoci praktický rozdiel mizne, keď ide o vyžrebovanie čísla z rozsahu. Presne preto prehliadače ponúkajú samostatné kryptografické API namiesto toho, aby jednoducho vylepšovali Math.random(): tieto dva generátory riešia odlišné problémy, a keď na výsledku niekomu záleží, vhodnou voľbou je kryptograficky bezpečný generátor.

Náhodná postupnosť nemusí ľuďom pripadať náhodná. Vygenerujte desať čísel medzi 1 a 10, a pravidelne uvidíte opakovania ako 7, 7, 8 alebo krátku sériu, v ktorej za sebou padnú vysoké hodnoty — a každá z týchto situácií je úplne bežná. Skutočná náhodnosť je nepredvídateľná a nemusí človeku pripadať rovnomerne rozložená: každé žrebovanie je nezávislé, predchádzajúce čísla nemajú na ďalšie absolútne žiadny vplyv, a žiadne číslo nikdy nie je viac „na rade“ ako iné. Inštinkt, ktorý tvrdí opak, je príkladom hráčskeho klamu, a je to ten istý inštinkt, ktorý robí z ľudí zlé generátory čísel — keď nás požiadajú, aby sme si vymysleli náhodnú postupnosť, vyhýbame sa opakovaniam a rozdeľujeme hodnoty oveľa rovnomernejšie, než to kedy robí náhoda. Výsledok, ktorý pôsobí podozrivo upratane, je odtlačok človeka; skutočná náhodnosť vytvára zhluky.

Prečo si vybrať tento generátor náhodných čísel?

Náhodné čísla sa objavujú na oveľa viac miestach, než si väčšina ľudí myslí. Učitelia vyvolávajú žiakov bez toho, aby niekoho zvýhodňovali. Streameri a marketéri žrebujú výhercov darčekových akcií a tombol pred publikom, ktoré musí výsledku dôverovať. Hráči nahrádzajú stratenú kocku alebo určujú, kto začína, a na turnajoch sa žrebovaním určuje štartové poradie. Výskumníci vyberajú náhodnú vzorku, aby sa ich zistenia dali zovšeobecniť aj na ľudí, ktorí sa výskumu nezúčastnili. Vývojári generujú testovacie dáta, inicializujú simulácie pomocou hodnoty seed a vyberajú identifikátory počas QA. Spoločným menovateľom je náhodný výberový proces, ktorý sa dá neskôr vysvetliť: keďže žrebovanie využíva kryptografickú náhodnosť a prebieha úplne na vašom zariadení, môžete ukázať, ako výsledok vznikol, ak to niekto spochybní.

Tento generátor má niekoľko poctivých obmedzení, ktoré sa oplatí poznať. Režim „Bez opakovania“ nedokáže vyžrebovať viac čísel, než rozsah obsahuje: dvadsať jedinečných hodnôt medzi 1 a 10 jednoducho neexistuje. Žrebovania sú nezávislé a predchádzajúce výsledky neovplyvňujú ďalšie, takže obnovenie stránky nenuluje žiadny cyklus — neexistuje žiadny cyklus, v ktorom by bolo možné byť. A hoci sú čísla kryptograficky silné, žrebovanie je tu spravodlivý výber, nie predpoveď: oficiálne žrebovania lotérií používajú vlastné fyzické alebo certifikované vybavenie, a to, čo sa počíta vo vašom prehliadači, s nimi nemá žiadnu súvislosť. V rámci týchto obmedzení je záruka o to silnejšia: každé číslo vo vašom rozsahu má presne rovnakú šancu, pri každom žrebovaní.

FAQ

Je náhodnosť kryptograficky bezpečná?

Áno. Používa Web Crypto API vášho prehliadača (crypto.getRandomValues), ktoré čerpá náhodnosť z kryptograficky bezpečného zdroja vášho operačného systému. Na rozdiel od jednoduchých pseudonáhodných funkcií je jej výstup navrhnutý tak, aby bol v praxi nepredvídateľný, a rejection sampling udržiava každé číslo v rozsahu rovnako pravdepodobné, namiesto toho, aby zvýhodňoval najnižšie hodnoty.

Ako vygenerujem náhodné číslo v konkrétnom rozsahu?

Zadajte najmenšiu možnú hodnotu do poľa „Min“ a najväčšiu do poľa „Max“, potom stlačte „Generovať“. Obe hranice sú zahrnuté vo výsledku, takže rozsah 1 až 10 môže dať ako 1, tak aj 10.

Môžem vygenerovať viac náhodných čísel naraz?

Áno. Nastavte pole „Počet“ na požadovaný počet (až 1000) a generátor vytvorí celý zoznam jedným kliknutím. Potom môžete skopírovať všetky výsledky do schránky tlačidlom na kopírovanie alebo ich uložiť do súboru.

Môžem vygenerovať viac sád čísel naraz?

Áno. Prepnite „Formát výsledku“ z „Zalomenie riadka“ na „Oddelené medzerami“ alebo „Oddelené čiarkami“, čím sa zobrazí pole „Počet sád“. Nastavte ho na počet nezávislých sád, ktoré potrebujete — napríklad dvadsať sád po troch číslach pre dvadsať kôl žrebovania — a zvoľte, či sa duplicity môžu opakovať medzi rôznymi sadami.

Môžem zoradiť vygenerované čísla?

Áno. Použite možnosť „Poradie zoradenia“ na usporiadanie každého zoznamu vzostupne alebo zostupne, alebo ju nechajte na „Žiadne“, aby ste zachovali čísla v poradí, v akom boli vyžrebované.

Ako sa vyhnem opakujúcim sa číslam?

Zapnite prepínač „Bez opakovania“. Keď je zapnutý, každé vygenerované číslo v zozname je iné — ideálne pre tomboly, žrebovania cien alebo rozdelenie ľudí do skupín. Uvedomte si, že počet nesmie prekročiť veľkosť rozsahu: nie je možné vyžrebovať 20 jedinečných čísel medzi 1 a 10.

Prečo sa stále opakujú rovnaké čísla?

Pretože nezávislé žrebovania sa môžu opakovať, a presne tak vyzerá náhodnosť. Každé žrebovanie úplne ignoruje všetky predchádzajúce žrebovania, takže v rozsahu 1 až 10 má rovnaké číslo šancu 1 z 10 objaviť sa znova — a je to normálne, nie chyba. Ak potrebujete zoznam bez opakovania, zapnite „Bez opakovania“; to zámerne obmedzuje žrebovanie, nie je to oprava nejakej chyby.

Prečo náhodná postupnosť nevyzerá náhodne?

Pretože skutočná náhodnosť je nepredvídateľná a nemusí človeku pripadať rovnomerne rozložená. Ľudia očakávajú, že náhodný výsledok bude úhľadne rozložený, takže zhluky, opakovania a krátke série ako 7, 7, 8 pôsobia ako chyby, hoci ide presne o to, čo dáva náhoda. Postupnosť, ktorá pôsobí na človeka príliš usporiadane, môže byť úplne náhodná.

Môžem dôverovať náhodnosti generovanej v prehliadači?

Áno, keď pochádza z Web Crypto API, ako je to tu. crypto.getRandomValues je rozhranie Web Crypto API na získavanie kryptograficky bezpečných náhodných hodnôt, ktoré sa môžu používať okrem iného v kryptografických aplikáciách. Zdroj náhodnosti poskytuje operačný systém, nie JavaScript. Práve Math.random() by ste nemali dôverovať, keď na niečom naozaj záleží: je deterministická a nikdy nebola navrhnutá ako nepredvídateľná.

Dajú sa náhodné čísla predpovedať alebo ovplyvniť?

Tu nie. Hodnoty pochádzajú z kryptograficky bezpečného generátora vášho operačného systému, takže predchádzajúce výsledky nič neprezrádzajú o ďalšom, a žrebovanie prebieha úplne na vašom zariadení — neexistuje server, do ktorého by sa dalo zasahovať, ani požiadavka, ktorú by mohol niekto zachytiť. Nemôžeme ovplyvniť ani vaše výsledky, pretože ich nikdy nevidíme.

Hodí sa to na výber výhercov darčekových akcií alebo tombol?

Áno. Priraďte každému účastníkovi číslo, vygenerujte výsledok v tomto rozsahu, a vyhráva účastník, ktorému zodpovedá. Keďže zdroj je kryptograficky bezpečný a žrebovanie prebieha úplne na vašom zariadení, proces je ľahké vysvetliť a zdokumentovať, ak účastník spochybní výsledok. Ak vyberáte čísla na žrebovací lístok, nástroj funguje ako prostriedok náhodného výberu, nie ako predpoveď: oficiálne žrebovania sú od toho úplne nezávislé.

Zmení obnovenie stránky náhodnosť?

Nie, a ani to nie je potrebné. Každé žrebovanie si už vyžiada od operačného systému čerstvé náhodné hodnoty, takže výsledky sú nezávislé bez ohľadu na to, či stlačíte „Generovať“ desaťkrát, alebo obnovíte stránku medzi každým stlačením. Neexistuje žiadny cyklus, ktorý by bolo treba reštartovať, ani stav, ktorý by mohol zastarať — obnovenie iba vymaže výsledky zobrazené na obrazovke.

Je generátor zadarmo a ukladáte moje čísla?

Nástroj je úplne zadarmo a nevyžaduje registráciu. Všetky čísla sa generujú lokálne vo vašom prehliadači a nikdy neopustia vaše zariadenie, takže by sme nemohli uložiť ani vidieť vaše výsledky, ani keby sme chceli.