Spletni generator naključnih števil
Porazdelitev rezultatov
Preizkus enakomernosti
Za preizkus izžrebajte več števil v ožjem obsegu.
Nedavna žrebanja
Shranjene predloge
Kako deluje generator naključnih števil?
Generator vam ponuja dva vira naključnosti, izbira pa je odvisna od tega, kaj potrebujete.
Varno naključno črpa entropijo iz vašega operacijskega sistema prek Web Crypto API (crypto.getRandomValues()). Je nepredvidljivo in neponovljivo — prava izbira za pravo žrebanje, pri katerem nihče ne sme vnaprej uganiti izida.
S semenom poljubno besedilo, ki ga vnesete, spremeni v začetno stanje determinističnega generatorja (xoshiro128**). Isto seme vedno da ista števila, zato lahko kdorkoli ponovi vaše žrebanje in preveri, da je rezultat res tak, kot trdite.
Oba delujeta v celoti v vašem brskalniku. Nobeno število nikoli ne pride do strežnika.
Brez pristranskosti modulo
Večina preprostih generatorjev preslika naključno 32-bitno vrednost na vaše območje z value % range. Kadar se območje ne deli enakomerno v 2³², se najnižja števila pojavljajo nekoliko pogosteje kot ostala. Pri tisočih žrebanjih je to merljivo.
Ta generator namesto tega uporablja zavračanje vzorčenja (rejection sampling): vrednosti, ki bi padle v neenakomeren rep, se zavržejo in ponovno izžrebajo. Vsako število v vašem območju ima popolnoma enako verjetnost. To lahko sami preverite z vgrajenim testom enakomernosti.
Kaj vse zmore generator
Območje
- Minimum in maksimum — poljubno celoštevilsko ali decimalno območje, vključno z negativnimi vrednostmi
- Koliko števil — od 1 do 1.000.000 v enem žrebanju
- Brez ponavljanja — vsako število se pojavi največ enkrat, tako kot pri pravem žrebanju
- Razvrščanje — vrstni red žrebanja, naraščajoče ali padajoče; razvrščanje nikoli ne vpliva na naključnost
- Korak — omeji rezultate na večkratnike vrednosti, tako da se pojavijo le 0, 5, 10, 15
- Izključena števila — seznam vrednosti, ki nikoli ne smejo biti izžrebane
Način
- Vir naključnosti — varen (Web Crypto) ali s semenom (ponovljiv)
- Seme — poljubno besedilo; isto seme vedno ponovi isto žrebanje
- Porazdelitev — enakomerna, normalna (Gaussova), eksponentna, Poissonova, trikotna, binomska
- Uteži — izbranim številom dajte večjo verjetnost, zapisano kot
number:weight - Kockovni zapis —
3d6+2,d20,2d20kh1za prednost,4d6dl1za metanje atributov
Izpis
- Ločilo — vejica, presledek, podpičje, tabulator, nova vrstica ali karkoli vnesete
- Številski sistem — decimalni, binarni, osmiški, šestnajstiški ali osnova 36
- Dopolnjevanje z ničlami — spremeni 7 v 007, primerno za številke kart ali ID-jev
- Predpona in pripona — vsako število obdajte s fiksnim besedilom
- Predloga —
{n}je število,{i}njegov položaj, takouser{n}postaneuser42 - Kopiraj kot — navadno besedilo, CSV, JSON ali tabelo Markdown
Statistika
Vsako žrebanje je povzeto v živo: vsota, povprečje, mediana, najnižja in najvišja vrednost, standardni odklon ter koliko rezultatov je sodih, lihih ali praštevil. Histogram prikaže obliko porazdelitve, hi-kvadrat test pa pove, ali rezultati dejansko ustrezajo enakomerni porazdelitvi.
Zgodovina
Zadnjih 50 žrebanj se shrani v vašem brskalniku skupaj z nastavitvami, ki so jih ustvarile — z enim klikom obnovite katero koli od njih. Nastavitve, ki jih pogosto uporabljate, lahko shranite kot poimenovane prednastavitve, celoten seznam pa lahko izvozite v datoteko JSON in ga uvozite na drugem računalniku. Nič ni shranjeno nikjer drugje kot v tem brskalniku.
Tipkovnica
Pritisnite preslednico ali R, da ponovite žrebanje brez uporabe miške.
Hitre prednastavitve
| Prednastavitev | Območje | Število | Uporaba |
|---|---|---|---|
| 🎲 Kocka | 1–6 | 1 | Namizne igre, odločanje |
| 🪙 Kovanec | 0–1 | 1 | Glava ali grb |
| 🎰 Loterija | 1–49 | 6 | Edinstvena, razvrščena, kot pri pravem žrebanju |
| 💯 1–100 | 1–100 | 1 | Odstotki, delitve A/B |
| 🔢 PIN | 0–9 | 4 | Štiri številke, ponavljanje dovoljeno |
Ponovljiva žrebanja
Način s semenom obstaja za trenutke, ko “zaupajte mi, bilo je naključno” ne zadošča.
Izberite seme, o katerem se vsi vnaprej strinjajo — datum, ključnik, zaključno ceno česa javnega — in ga objavite pred žrebanjem. Vsak lahko nato vnese isto seme z istimi nastavitvami in dobi identičen rezultat. S tem niste dokazali, da so bila števila nepredvidljiva; dokazali ste, da niste ponavljali žrebanja, dokler vam odgovor ni bil všeč.
Tako naredite naključnost ponovljivo tudi pri delu, ki ga je treba preveriti: načrt vzorčenja, ki ga lahko sodelavec ponovno zažene, sklop testnih podatkov, ki ostane stabilen skozi celoten testni nabor, ali šolska vaja, kjer vsak učenec dobi ista “naključna” podatka.
Izbira porazdelitve
Enakomerna porazdelitev da vsakemu številu v območju enako verjetnost. To je tisto, kar ljudje običajno mislijo z naključnim, in je privzeta nastavitev.
Druge porazdelitve zgostijo rezultate okoli neke vrednosti, kar je značilno za količine iz resničnega sveta:
- Normalna (Gaussova) — telesne višine, merilne napake, rezultati testov. Nastavite povprečje in standardni odklon.
- Eksponentna — čakalni časi med neodvisnimi dogodki.
- Poissonova — število dogodkov v fiksnem intervalu: prihodi na uro, napake na serijo.
- Trikotna — ko poznate minimum, maksimum in najverjetnejšo vrednost, nič drugega. Pogosta pri ocenah projektov.
- Binomska — število uspehov od fiksnega števila poskusov pri fiksni verjetnosti.
Vsaka porazdelitev je omejena na območje, ki ste ga nastavili, zato dolg Gaussov rep ne more preseči vašega minimuma in maksimuma.
Kje se uporabljajo naključna števila
Igre in zabava
- Namizne igre — meti kocke, vrstni red igranja
- Namizne RPG igre —
4d6dl1za atribute likov,2d20kh1za prednost - Nagradne igre — izbor zmagovalca, s semenom, da lahko udeleženci preverijo rezultat
- Kvizi — naključen vrstni red vprašanj
Statistika in znanost
- Vzorčenje — izbor vzorca iz populacije brez ponavljanja
- A/B testiranje — razporejanje udeležencev v skupine
- Simulacija Monte Carlo — ocenjevanje verjetnosti s ponavljanjem
- Bootstrapping — ponovno vzorčenje za oceno negotovosti
Razvoj
- Testni podatki — milijon vrednosti, generiranih v ozadju, tako da stran ostane odzivna
- Testni podatki (fixtures) — s semenom, tako da neuspešen test vsakič odpove enako
- Naključni ID-ji — z dopolnjevanjem, predponami ali predlogo
- Obremenitveno testiranje — identifikatorji po predlogi, na primer
user{n}@example.com
Resnično naključna proti psevdonaključnim številom
Math.random() | crypto.getRandomValues() | S semenom (xoshiro128**) | |
|---|---|---|---|
| Tip | Psevdonaključno | Kriptografsko varno | Psevdonaključno, deterministično |
| Vir entropije | Seme, ki ga izbere pogon | Sistemski CSPRNG | Vaše besedilo semena |
| Predvidljivo? | Potencialno | Ne | Da, po zasnovi |
| Ponovljivo? | Ne | Ne | Vedno |
| Primerno za varnost | Ne | Da | Ne |
| Primerno za statistiko | Odvisno | Da | Da |
| Primerno za preverljiva žrebanja | Ne | Ne | Da |
Math.random() v tem orodju ni uporabljen nikjer.
Žrebanja brez ponavljanja
Z vklopljeno možnostjo Brez ponavljanja se vsako število v območju pojavi največ enkrat. Idealno za:
- Nagradne igre — nihče ne more zmagati dvakrat
- Permutacije — mešanje nabora elementov
- Bingo — klicanje števil, ki ostanejo klicana
- Loterija — šest različnih števil od 1 do 49
Žrebanje uporablja delno mešanje Fisher–Yates, zato je zahteva po 6 številih izmed milijona enako hitra kot zahteva po 6 izmed 49 — nikoli se ne vrti v upanju, da se izogne trku. Če zahtevate več edinstvenih števil, kot jih območje lahko ponudi, generator to sporoči, namesto da bi obviselo.
Izvoz rezultatov
Števila kopirajte kot navadno besedilo s poljubnim ločilom, kot CSV za preglednico, kot JSON za kodo ali kot tabelo Markdown za dokumentacijo. Zelo velika žrebanja ostanejo v celoti v pomnilniku in se v celoti kopirajo, čeprav je na zaslonu prikazanih le prvih nekaj tisoč.
Generiranje naključnih števil v lastni kodi
JavaScript / TypeScript
// Kriptografsko varno celo število v [min, max], brez pristranskosti modulo.
// Naivni `value % range` favorizira nizka števila, kadar se območje ne
// deli enakomerno v 2**32 - zato zavrnemo vrednosti v neenakomernem repu.
function randomInt(min, max) {
const range = max - min + 1;
const limit = Math.floor(0x100000000 / range) * range;
const arr = new Uint32Array(1);
let value;
do {
crypto.getRandomValues(arr);
value = arr[0];
} while (value >= limit);
return min + (value % range);
}
Python
import random
import secrets
# Kriptografsko varno, brez pristranskosti modulo
n = secrets.randbelow(max - min + 1) + min
# Ponovljivo: isto seme vedno da isto zaporedje
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Brez ponavljanja
sample = random.sample(range(min, max + 1), count)
PHP
// Kriptografsko varno (PHP 7+), brez pristranskosti modulo
$n = random_int($min, $max);
// Ponovljivo
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Pogosto zastavljena vprašanja (FAQ)
Je rezultat resnično naključen?
V varnem načinu da. Prihaja izcrypto.getRandomValues(), kriptografsko varnega generatorja, ki ga napaja entropijski nabor vašega operacijskega sistema. Rezultati so enakomerno porazdeljeni in nepredvidljivi. Način s semenom je namerno nasproten: je ponovljiv, kar je tudi njegov namen.
Koliko števil lahko generiram naenkrat?
Do 1.000.000. Žrebanja nad 50.000 se izračunajo v ozadnjem delavcu (worker), tako da stran ostane odzivna, na zaslonu pa je prikazanih prvih 2.000 s štetjem preostalih — kopiranje pa vseeno vključuje popolnoma vse.Ali lahko generiram negativna števila?
Da. Nastavite negativen minimum. Deluje celotno območje JavaScript števil, vključno z negativnimi vrednostmi na obeh koncih.Ali razvrščanje vpliva na naključnost?
Ne. Števila se najprej izžrebajo, nato pa razvrstijo. Razvrščanje spremeni le vrstni red, v katerem jih vidite.Ali bo isto seme jutri dalo ista števila?
Da, tudi na katerikoli drugi napravi ali v drugem brskalniku. Generator s semenom je popolnoma deterministični in je odvisen izključno od vašega semena in nastavitev.Kaj mi pove test enakomernosti?
Izvede hi-kvadrat test, ki primerja, kolikokrat se je vsako število dejansko pojavilo, s tem, kolikokrat bi se moralo. Če statistika ostane pod kritično vrednostjo, so rezultati skladni z enakomerno porazdelitvijo. Za smiseln rezultat potrebuje razmeroma ozko območje in dovolj žrebanj — vsaj pet na možno vrednost.Kako delujejo uteži?
Zapišite jih kot parenumber:weight, na primer 1:5, 2:1, 3:1. Tu je 1 petkrat bolj verjeten kot 2 ali 3. Števila, ki jih ne navedete, dobijo utež nič in nikoli niso izžrebana.
Kateri kockovni zapis je podprt?
3d6 vrže tri šeststrane kocke. Modifikator dodate z 3d6+2. Kocke obdržite ali zavrzite z kh, kl, dh, dl — tako 2d20kh1 obdrži višji met od dveh d20 (prednost), 4d6dl1 pa zavrže najnižji met od štirih d6.