Slumptalsgenerator online
Resultatens fördelning
Likformighetstest
Dra fler tal inom ett smalare intervall för att köra testet.
Senaste dragningar
Sparade snabbval
Hur fungerar Slumptalsgeneratorn?
Generatorn ger dig två källor till slump, och du väljer den som passar uppgiften.
Säker slump hämtar entropi från ditt operativsystem via Web Crypto API (crypto.getRandomValues()). Den är oförutsägbar och oupprepbar – rätt val för en verklig dragning där ingen ska kunna gissa utfallet i förväg.
Seedad omvandlar valfri text du skriver till ett starttillstånd för en deterministisk generator (xoshiro128**). Samma seed ger alltid samma tal, så vem som helst kan spela upp din dragning igen och bekräfta att resultatet stämmer.
Båda körs helt i din webbläsare. Inget tal skickas någonsin till en server.
Ingen modulo-snedvridning
De flesta enkla generatorer mappar ett slumpmässigt 32-bitarsvärde till ditt intervall med value % range. När intervallet inte går jämnt upp i 2³² förekommer de lägsta talen något oftare än resten. Över tusentals dragningar går det att mäta.
Den här generatorn använder istället rejection sampling: värden som skulle hamna i den ojämna svansen kastas bort och dras om. Varje tal i ditt intervall har exakt samma chans. Du kan verifiera det själv med det inbyggda likformighetstestet.
Vad generatorn kan göra
Intervall
- Min och max – valfritt helt eller decimalt intervall, negativa värden inkluderade
- Antal tal – från 1 upp till 1 000 000 i en dragning
- Inga upprepningar – varje tal förekommer högst en gång, precis som i en verklig dragning
- Sortering – dragningsordning, stigande eller fallande; sortering påverkar aldrig slumpen
- Steg – begränsa resultaten till multiplar av ett värde, så bara 0, 5, 10, 15 förekommer
- Uteslut tal – lista värden som aldrig får dras
Läge
- Slumpkälla – säker (Web Crypto) eller seedad (reproducerbar)
- Seed – valfri text; samma seed ger alltid samma dragning igen
- Fördelning – likformig, normal (Gauss), exponential, Poisson, triangulär, binomial
- Vikter – ge valda tal högre chans, skrivs som
number:weight - Tärningsnotation –
3d6+2,d20,2d20kh1för fördel,4d6dl1för attributslag
Utdata
- Avgränsare – kommatecken, mellanslag, semikolon, tab, ny rad eller valfritt tecken
- Talsystem – decimal, binär, oktal, hexadecimal eller bas 36
- Fyll ut med nollor – gör om 7 till 007 för biljett- eller ID-nummer
- Prefix och suffix – omslut varje tal med fast text
- Mall –
{n}är talet,{i}dess position, såuser{n}bliruser42 - Kopiera som – vanlig text, CSV, JSON eller en Markdown-tabell
Statistik
Varje dragning sammanfattas i realtid: summa, medelvärde, median, lägsta, högsta, standardavvikelse, samt hur många resultat som är jämna, udda eller primtal. Ett histogram visar fördelningens form, och ett chi-två-test avgör om resultaten faktiskt matchar en likformig fördelning.
Historik
De senaste 50 dragningarna sparas i din webbläsare, tillsammans med inställningarna som skapade dem – ett klick återställer vilken som helst av dem. Konfigurationer du använder ofta kan sparas som namngivna förinställningar, och hela samlingen exporteras till en JSON-fil du kan importera på en annan maskin. Ingenting lagras någon annanstans än i den här webbläsaren.
Tangentbord
Tryck på Mellanslag eller R för att dra igen utan att behöva ta musen.
Snabba förinställningar
| Förinställning | Intervall | Antal | Användning |
|---|---|---|---|
| 🎲 Tärning | 1–6 | 1 | Brädspel, beslut |
| 🪙 Mynt | 0–1 | 1 | Krona eller klave |
| 🎰 Lotto | 1–49 | 6 | Unikt, sorterat, som en riktig dragning |
| 💯 1–100 | 1–100 | 1 | Procent, A/B-uppdelningar |
| 🔢 PIN | 0–9 | 4 | Fyra siffror, upprepningar tillåtna |
Reproducerbara dragningar
Seedat läge finns för de tillfällen då “lita på mig, det var slumpmässigt” inte räcker.
Välj en seed som alla kan enas om i förväg – ett datum, en hashtag, stängningskursen för något offentligt – och tillkännage den innan dragningen. Vem som helst kan sedan skriva samma seed med samma inställningar och få exakt samma resultat. Du har inte bevisat att talen var oförutsägbara; du har bevisat att du inte dragit om tills du gillade svaret.
Det är också så du gör slumpen repeterbar i arbete som måste kunna kontrolleras: en samplingsplan en kollega kan köra om, en uppsättning testdata som förblir stabil genom en testsvit, en klassrumsövning där varje elev får samma “slumpmässiga” data.
Att välja en fördelning
Likformig ger varje tal i intervallet samma chans. Det är vad de flesta menar med slumpmässigt, och det är standardvalet.
De andra samlar resultaten kring ett värde, vilket är vad verkliga storheter ofta gör:
- Normal (Gauss) – längder, mätfel, provresultat. Ställ in ett medelvärde och en standardavvikelse.
- Exponential – väntetider mellan oberoende händelser.
- Poisson – antal händelser under ett fast intervall: ankomster per timme, defekter per batch.
- Triangulär – när du känner till minimum, maximum och det mest sannolika värdet men inget annat. Vanligt i projektuppskattningar.
- Binomial – antal lyckade utfall av ett fast antal försök med en fast sannolikhet.
Varje fördelning klipps till det intervall du ställt in, så en lång Gauss-svans kan inte överskrida ditt minimum och maximum.
Var slumptal används
Spel och underhållning
- Brädspel – tärningskast, turordning
- Bordsrollspel –
4d6dl1för attributvärden,2d20kh1för fördel - Utlottningar – att välja en vinnare, med en seed så deltagarna kan verifiera det
- Frågesporter – slumpmässig frågeordning
Statistik och vetenskap
- Sampling – att dra ett stickprov ur en population utan upprepningar
- A/B-testning – att fördela deltagare i grupper
- Monte Carlo-simulering – att uppskatta sannolikhet genom upprepning
- Bootstrapping – omsampling för att uppskatta osäkerhet
Utveckling
- Testdata – en miljon värden, genererade i bakgrunden så att sidan förblir responsiv
- Testfixturer – seedade, så att ett misslyckat test misslyckas på samma sätt två gånger
- Slumpmässiga ID:n – med utfyllnad, prefix eller en mall
- Belastningstest – mallbaserade identifierare som
user{n}@example.com
Äkta slump kontra pseudoslump
Math.random() | crypto.getRandomValues() | Seedad (xoshiro128**) | |
|---|---|---|---|
| Typ | Pseudoslumpmässig | Kryptografiskt säker | Pseudoslumpmässig, deterministisk |
| Entropikälla | Motorvald seed | System-CSPRNG | Din seed-text |
| Förutsägbar? | Potentiellt | Nej | Ja, per design |
| Repeterbar? | Nej | Nej | Alltid |
| Bra för säkerhet | Nej | Ja | Nej |
| Bra för statistik | Beror på | Ja | Ja |
| Bra för verifierbara dragningar | Nej | Nej | Ja |
Math.random() används inte någonstans i det här verktyget.
Dragningar utan upprepning
Med Inga upprepningar aktiverat förekommer varje tal i intervallet högst en gång. Idealiskt för:
- Utlottningar – ingen kan vinna två gånger
- Permutationer – att blanda en uppsättning objekt
- Bingo – att ropa upp tal som förblir uppropade
- Lotto – sex unika tal från 1 till 49
Dragningen använder en partiell Fisher–Yates-blandning, så att be om 6 tal av en miljon går lika snabbt som att be om 6 av 49 – den loopar aldrig i hopp om att undvika en kollision. Om du ber om fler unika tal än intervallet kan tillhandahålla säger generatorn ifrån istället för att hänga sig.
Exportera resultat
Kopiera talen som vanlig text med valfri avgränsare, som CSV för ett kalkylblad, som JSON för kod, eller som en Markdown-tabell för dokumentation. Mycket stora dragningar hålls kvar i minnet i sin helhet och kopieras i sin helhet, även om bara de första par tusen ritas upp på skärmen.
Generera slumptal i din egen kod
JavaScript / TypeScript
// Kryptografiskt säkert heltal i [min, max], utan modulo-snedvridning.
// Den naiva `value % range` gynnar låga tal när intervallet inte
// går jämnt upp i 2**32 - därför förkastar vi värden i den ojämna svansen.
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
# Kryptografiskt säkert, ingen modulo-snedvridning
n = secrets.randbelow(max - min + 1) + min
# Reproducerbart: samma seed ger alltid samma sekvens
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Utan upprepning
sample = random.sample(range(min, max + 1), count)
PHP
// Kryptografiskt säkert (PHP 7+), ingen modulo-snedvridning
$n = random_int($min, $max);
// Reproducerbart
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Vanliga frågor (FAQ)
Är resultatet verkligen slumpmässigt?
I säkert läge, ja. Det kommer fråncrypto.getRandomValues(), en kryptografiskt säker generator som matas av ditt operativsystems entropipool. Resultaten är likformigt fördelade och oförutsägbara. Seedat läge är medvetet motsatsen: det är reproducerbart, vilket är själva poängen.
Hur många tal kan jag generera på en gång?
Upp till 1 000 000. Dragningar över 50 000 beräknas i en bakgrundsworker så att sidan förblir responsiv, och skärmen visar de första 2 000 med en räknare för resten – kopiering ger dig fortfarande allt.Kan jag generera negativa tal?
Ja. Ställ in ett negativt minimum. Hela intervallet av JavaScript-tal fungerar, inklusive negativa intervall i båda ändarna.Påverkar sortering slumpmässigheten?
Nej. Talen dras först och sorteras efteråt. Sortering ändrar bara i vilken ordning du ser dem.Ger samma seed samma tal imorgon?
Ja, och på vilken annan enhet eller webbläsare som helst. Den seedade generatorn är helt deterministisk och beror bara på din seed och dina inställningar.Vad säger likformighetstestet mig?
Det kör ett chi-två-test som jämför hur ofta varje tal faktiskt förekom med hur ofta det borde ha förekommit. Om statistiken håller sig under det kritiska värdet är resultaten förenliga med en likformig fördelning. Det kräver ett rimligt smalt intervall och tillräckligt många dragningar – minst fem per möjligt värde – för att säga något meningsfullt.Hur fungerar vikter?
Skriv dem somnumber:weight-par, till exempel 1:5, 2:1, 3:1. Här är 1 fem gånger så sannolikt som 2 eller 3. Tal du inte listar får vikten noll och dras aldrig.
Vilken tärningsnotation stöds?
3d6 kastar tre sexsidiga tärningar. Lägg till en modifierare med 3d6+2. Behåll eller kasta bort tärningar med kh, kl, dh, dl – så 2d20kh1 behåller den högsta av två d20 (fördel) och 4d6dl1 kastar bort den lägsta av fyra d6.