Véletlenszám-generátor

Generáljon véletlen számot, listát vagy több számkészletet bármilyen tartományban — mindezt közvetlenül a böngészőjében, kriptográfiailag biztonságos véletlenszerűséggel — az eredmények pedig soha nem kerülnek a szerverre.

Nyomd meg a Generálás gombot a sorsoláshoz
Beállítások

Gyors és igazságos módot keres egy véletlen szám kiválasztására? Ez az ingyenes, online véletlenszám-generátor egyetlen számot sorsol ki — vagy egy egész számlistát — az Ön által választott tetszőleges tartományban, az egyszerű 1–10-es tartománytól egészen a milliárdos nagyságrendű tartományokig. Állítsa be a minimum és maximum értéket a „Min” és „Max” mezőben, válassza ki, hány számra van szüksége a „Darabszám” mezőben, majd nyomja meg a „Generálás” gombot. Mindkét határérték benne foglaltatik, tehát az 1–10 tartomány mind az 1-et, mind a 10-et visszaadhatja.

Minden eredmény közvetlenül az Ön böngészőjében jön létre a Web Crypto API (crypto.getRandomValues) segítségével — amely kriptográfiailag erős véletlen értékeket biztosít az operációs rendszer által biztosított véletlenszerűségi forrásból. Semmi nem kerül szerverre, semmit nem naplózunk, és soha nem látjuk az Ön számait. A generálás azonnali, privát, és lassú kapcsolaton is működik, miután az oldal betöltődött.

A beállítások azokra a helyzetekre készültek, amikor az embereknek ténylegesen véletlen számokra van szükségük. Kapcsolja be az „Ismétlődések nélkül” opciót, hogy egyetlen szám se forduljon elő kétszer — pontosan erre van szükség sorsolásoknál, tombolánál vagy embercsoportok ismétlés nélküli felosztásánál. Húsz nyertesre van szüksége 500 résztvevő közül? Állítsa a „Min” értéket 1-re, a „Max” értéket 500-ra, kapcsolja be az „Ismétlődések nélkül” opciót, állítsa a „Darabszám” értéket 20-ra, majd nyomja meg a „Generálás” gombot. A „Rendezési sorrend” növekvő vagy csökkenő sorrendbe rendezi az eredményt, egyetlen gomb pedig az összes eredményt kimásolja. Ha a „Kimeneti formátumot” a „Sortörésről” „Szóközzel elválasztva” vagy „Vesszővel elválasztva” értékre váltja, megjelenik a „Készletek száma”: több független sorsolás egyszerre — például húsz készlet, egyenként 3 számmal, húsz sorsolási körhöz —, a „Duplikátumok engedélyezése a készletek között” pedig eldönti, hogy ugyanaz a szám előfordulhat-e egynél több készletben.

Hogyan jön létre valójában a véletlenszerűség? Az Ön böngészője kriptográfiailag erős véletlen értékeket biztosít a Web Crypto API-n keresztül, nem pedig egy JavaScript-PRNG-en, mint amilyen a Math.random(). Amikor megnyomja a „Generálás” gombot, az oldal véletlen értékeket kér a crypto.getRandomValues segítségével, és ezekből hozza létre a számokat a kiválasztott tartományban. A véletlenszerűség forrását az operációs rendszer biztosítja, ezért az oldalnak nem kell saját seedet vagy álvéletlen sorozatot fenntartania.

A nyers érték tartományra való átalakítása pontosan az a hely, ahol a generátorok csendben elrontják a dolgot, és ez megérdemel egy önálló bekezdést. A legkézenfekvőbb módszer az érték modulo a tartomány méretét venni — ez azonban torzított: hacsak a tartomány nem osztható pontosan 2^32-vel, a legalacsonyabb számok kicsit gyakrabban fordulnak elő, mint a többi. Ezt a hibát modulo biasnak hívják, és ez mérhető, nem csupán elméleti. Ez a generátor ehelyett minden olyan értéket elvet, amely a tartomány legnagyobb pontos többszörösén túl esik, és újra sorsol — ezt a technikát rejection samplingnek hívják. Ez néhány extra sorsolásba kerül, de cserébe biztosítja, hogy a „Min” és „Max” közötti minden szám pontosan ugyanolyan valószínűséggel jelenjen meg, nem csak megközelítőleg ugyanakkorával.

Mitől lesz egy szám valóban véletlen? Egy szám akkor tekinthető kellően véletlennek, ha a korábbi eredmények megfigyelése önmagában nem teszi lehetővé a következő értékek előrejelzését — és a gyakorlatban ennek három szintje van. Egy hétköznapi álvéletlen függvény, mint a Math.random(), determinisztikus algoritmust futtat: aki ismeri a belső állapotát, az képes reprodukálni a teljes sorozatot, ami tökéletes egy diavetítés megkeveréséhez, de alkalmatlan bármihez, ahol az eredmény nem lehet előre jelezhető. Egy kriptográfiailag biztonságos generátor (CSPRNG) — az a szint, amelyet ez az eszköz használ — szintén algoritmus, de úgy tervezték, hogy kiszámíthatatlan értékeket állítson elő a rendszer biztonságos véletlenforrásából, és úgy épült fel, hogy a kimenetének megfigyelése önmagában nem teszi lehetővé a következő értékek előrejelzését. A fizikai véletlenszerűség — olyan forrásokból, mint a légköri zaj vagy a radioaktív bomlás — ettől különálló szintet képvisel, bár a gyakorlati különbség eltűnik, amikor egy számot kell kisorsolni egy tartományból. Pontosan ezért kínálnak a böngészők külön kriptográfiai API-t ahelyett, hogy egyszerűen csak javítanák a Math.random()-ot: a kettő eltérő problémákat old meg, és csak az egyik biztonságos, amikor az eredmény valakinek számít.

Egy véletlen sorozatnak nem kell véletlennek tűnnie az emberek számára. Sorsoljon ki tíz számot 1 és 10 között, és rendszeresen fog látni ismétlődéseket, például a 7, 7, 8-at, vagy egy rövid sorozatot, amely teljesen magas értékekből áll — és mindegyik ilyen helyzet teljesen normális. A valódi véletlenszerűség kiszámíthatatlan, nem egyenletesen eloszló: minden sorsolás független, a korábbi számoknak semmilyen hatásuk nincs a következőkre, és egyetlen szám sem lesz soha inkább „esedékes”, mint egy másik. Az ösztön, amely az ellenkezőjét állítja, a szerencsejátékosok tévhite, és ugyanez az ösztön teszi az embereket rossz véletlenszám-generátorokká — amikor arra kérnek minket, hogy találjunk ki egy véletlen sorozatot, elkerüljük az ismétlődéseket, és sokkal egyenletesebben osztjuk el az értékeket, mint amennyire a véletlen valaha is tenné. Az eredmény, amely gyanúsan rendezettnek tűnik, egy ember ujjlenyomata; a valódi véletlenszerűség természetes csoportosulásokat eredményez.

Miért ezt a véletlenszám-generátort válassza?

A véletlen számok sokkal több helyen bukkannak fel, mint a legtöbben gondolnák. A tanárok úgy szólítanak fel diákokat, hogy senkit sem részesítenek előnyben. A streamerek és a marketingesek nyereményjátékok és tombolák nyerteseit sorsolják ki olyan közönség előtt, amelynek hinnie kell az eredményben. A játékosok elveszett dobókockát pótolnak, vagy eldöntik, ki kezd, a versenyeken pedig a rajtsorrendet sorsolják ki. A kutatók véletlen mintát választanak, hogy eredményeik általánosíthatók legyenek azokon túl is, akik részt vettek. A fejlesztők tesztadatokat generálnak, kezdőértékkel (seed) inicializálnak szimulációkat, és azonosítókat választanak a QA során. A közös elem egy olyan véletlen kiválasztási folyamat, amely utólag megmagyarázható: mivel a sorsolás kriptográfiai véletlenszerűséget használ, és teljes egészében az Ön eszközén zajlik, meg tudja mutatni, hogyan született az eredmény, ha valaki megkérdőjelezi.

Ennek a generátornak néhány őszinte korlátja van, amelyeket érdemes ismerni. Az „Ismétlődések nélkül” mód nem tud több számot kisorsolni, mint amennyit a tartomány tartalmaz: húsz egyedi érték 1 és 10 között egyszerűen nem létezik. A sorsolások függetlenek, és a korábbi eredmények nem befolyásolják a következőket, ezért az oldal újratöltése nem nullázza le a ciklust — nincs is olyan ciklus, amelyben benne lehetne lenni. És bár a számok kriptográfiailag erősek, egy sorsolás itt igazságos véletlen kiválasztás, nem előrejelzés: a hivatalos lottóhúzások saját fizikai vagy hitelesített berendezést használnak, és azt, amit az Ön böngészője generál, nem szabad összekeverni a hivatalos sorsolással. Ezeken a korlátokon belül minden szám az Ön tartományában pontosan ugyanolyan valószínűséggel jelenik meg minden egyes sorsolásnál.

FAQ

Kriptográfiailag biztonságos-e a véletlenszerűség?

Igen. A böngészője Web Crypto API-ját (crypto.getRandomValues) használja, amely az operációs rendszer kriptográfiailag biztonságos forrásából meríti a véletlenszerűséget. Az egyszerű álvéletlen függvényekkel ellentétben a kimenetét úgy tervezték, hogy a gyakorlatban kiszámíthatatlan legyen, és a rejection sampling minden számot egyformán valószínűvé tesz a tartományban, ahelyett hogy a legalacsonyabb értékeket részesítené előnyben.

Hogyan generálhatok véletlen számot egy adott tartományban?

Írja be a lehető legkisebb értéket a „Min” mezőbe, a legnagyobbat pedig a „Max” mezőbe, majd nyomja meg a „Generálás” gombot. Mindkét határérték benne foglaltatik az eredményben, tehát az 1–10 tartomány mind az 1-et, mind a 10-et megadhatja.

Generálhatok-e egyszerre több véletlen számot?

Igen. Állítsa a „Darabszám” mezőt a kívánt mennyiségre (legfeljebb 1000-re), és a generátor egyetlen kattintással elkészíti a teljes listát. Ezután a másológombbal az összes eredményt a vágólapra másolhatja, vagy fájlba mentheti őket.

Generálhatok-e egyszerre több számkészletet?

Igen. Váltsa a „Kimeneti formátumot” a „Sortörésről” „Szóközzel elválasztva” vagy „Vesszővel elválasztva” értékre, hogy megjelenjen a „Készletek száma” mező. Állítsa be, hány független sorsolásra van szüksége — például húsz készlet, egyenként 3 számmal, húsz sorsolási körhöz —, majd válassza ki, hogy a duplikátumok ismétlődhetnek-e a különböző készletek között.

Rendezhetem-e a generált számokat?

Igen. Használja a „Rendezési sorrend” beállítást, hogy minden listát növekvő vagy csökkenő sorrendbe rendezzen, vagy hagyja „Nincs” állásban, hogy a számok abban a sorrendben maradjanak, amelyben kisorsolták őket.

Hogyan kerülhetem el az ismétlődő számokat?

Kapcsolja be az „Ismétlődések nélkül” kapcsolót. Ha be van kapcsolva, a listában minden generált szám különböző — ideális sorsolásokhoz, nyereményjátékokhoz vagy embercsoportok felosztásához. Vegye figyelembe, hogy a darabszám nem haladhatja meg a tartomány méretét: nem lehet kisorsolni 20 egyedi számot 1 és 10 között.

Miért ismétlődnek folyton ugyanazok a számok?

Mert a független sorsolások ismétlődhetnek, és pontosan így néz ki a véletlenszerűség. Minden sorsolás teljesen figyelmen kívül hagyja az összes korábbi sorsolást, tehát egy 1–10 tartományban ugyanannak a számnak minden alkalommal 1/10 esélye van arra, hogy egymás után kétszer is kijöjjön — ez megszokott, nem hiba. Ha ismétlés nélküli listára van szüksége, kapcsolja be az „Ismétlődések nélkül” opciót; ez szándékosan korlátozza a sorsolást, nem pedig egy hibát javít ki.

Miért nem tűnik véletlennek egy véletlen sorozat?

Mert a valódi véletlenszerűség kiszámíthatatlan, nem egyenletesen eloszló. Az emberek azt várják, hogy a véletlen eredmény szépen szét legyen szórva, ezért a csomók, ismétlődések és rövid sorozatok, mint a 7, 7, 8, hibának tűnnek, pedig pontosan ez az, amit a véletlen létrehoz. Egy sorozat, amely egy ember szemében rendezettnek tűnik, általában nem volt véletlen.

Megbízhatok-e a böngészőben generált véletlenszerűségben?

Igen, ha az a Web Crypto API-ból származik, mint itt is. A crypto.getRandomValues a Web Crypto API része, és kriptográfiailag erős véletlen értékek előállítására szolgál. A véletlenszerűség forrását az operációs rendszer biztosítja, nem a JavaScript. A Math.random() esetében viszont nem érdemes biztonságkritikus célokra hagyatkozni: determinisztikus algoritmust használ, és soha nem kiszámíthatatlanságra tervezték.

Megjósolhatók vagy befolyásolhatók-e a véletlen számok?

Itt nem. Az értékek az operációs rendszer kriptográfiailag biztonságos generátorából származnak, tehát a korábbi eredmények megfigyelése önmagában nem teszi lehetővé a következő értékek előrejelzését, és a sorsolás teljes egészében az Ön eszközén zajlik — nincs szerver, amelyet manipulálni lehetne, és nincs kérés, amelyet bárki elfoghatna. Az Ön eredményeit sem tudjuk befolyásolni, mert soha nem látjuk azokat.

Alkalmas-e nyereményjátékok vagy tombolák nyerteseinek kiválasztására?

Igen. Rendeljen egy számot minden résztvevőhöz, generáljon egy eredményt abban a tartományban, és az a résztvevő nyer, akihez a szám tartozik. Mivel a forrás kriptográfiailag biztonságos, és a sorsolás teljes egészében az Ön eszközén zajlik, a folyamat könnyen elmagyarázható és dokumentálható, ha egy résztvevő megkérdőjelezi az eredményt. Ha lottószelvényhez választ számokat, az eszköz véletlen kiválasztási eszközként működik, nem előrejelzésként: a hivatalos húzások ettől teljesen függetlenek.

Megváltoztatja-e az oldal újratöltése a véletlenszerűséget?

Nem, és nincs is rá szükség. Minden sorsolás már eleve friss véletlen értékeket kér az operációs rendszertől, tehát az eredmények függetlenek attól, hogy tízszer nyomja meg a „Generálás” gombot, vagy minden egyes megnyomás között újratölti az oldalt. Nincs olyan ciklus, amelyet újra kellene indítani, és nincs olyan állapot, amely elavulna — az újratöltés csak a képernyőn megjelenő eredményeket törli.

Ingyenes-e a generátor, és eltárolják-e a számaimat?

Az eszköz teljesen ingyenes, és nem igényel regisztrációt. Minden szám helyben, az Ön böngészőjében jön létre, és soha nem hagyja el az eszközét, tehát az eredményeit nem tudnánk eltárolni vagy megnézni, még ha akarnánk sem.