Satunnaislukugeneraattori – Luo lukuja helposti ja ilmaiseksi

Pika-asetukset:
Erotin kopioinnissa

Kuinka satunnaislukugeneraattori toimii?

Generaattorimme käyttää kryptografisesti turvallisia satunnaislukuja Web Crypto API:sta (crypto.getRandomValues()). Toisin kuin Math.random(), joka on näennäissatunnainen ja sopimaton turvallisuus- tai tilastollisiin tarkoituksiin, crypto.getRandomValues() tarjoaa todellista entropiaa järjestelmän lähteestä.

Kaikki generointi tapahtuu suoraan selaimessasi – numeroita ei lähetetä palvelimelle.

Generaattorin ominaisuudet

Perusasetukset

  • Minimi ja maksimi – aseta mikä tahansa kokonaisluku- tai desimaalialue
  • Lukujen määrä – luo 1–10 000 lukua kerrallaan
  • Kaksoiskappaleet – estä lukujen toistuminen (sopii arvontaan)
  • Lajittelu – lajittele tulokset pienimmästä suurimpaan
  • Desimaaliluvut – vaihda desimaalilukuihin ja aseta tarkkuus

Pika-asetukset

EsiasetusAlueMääräKäyttö
🎲 Noppa1–61Pelit, päätöksenteko
🪙 Kolikko0–11Kruuna tai Klaava
🎰 Lotto1–407Suomalaisen Loton simulointi
💯 1–1001–1001Yleiskäyttö

Mihin satunnaislukuja käytetään?

Pelit ja viihde

  • Lautapelit – noppien heittäminen, järjestyksen arpominen
  • Päätöksenteko – kun et tiedä, mitä valita
  • Visat ja kilpailut – kysymyksen tai voittajan satunnainen valinta
  • RPG-pelit – hahmojen ominaisuuksien generointi

Tilastot ja tiede

  • Otantatoiminta – populaatiosta otannan satunnainen valinta
  • A/B-testaus – satunnainen jakaminen ryhmiin
  • Monte Carlo -simulaatio – todennäköisyyksien arviointi
  • Bootstrapping – tilastollinen menetelmä uudelleennäytteistykseen

Informatiikka ja kehitys

  • Testidata – testiarvojen generointi
  • Neuroverkkojen painojen alustus
  • Satunnaiset ID:t – kun UUID on liian suuri
  • Pelillistäminen – satunnaiset palkinnot, loot box -mekaniikat

Todelliset vs. näennäissatunnaiset luvut

Math.random()crypto.getRandomValues()
TyyppiNäennäissatunnainenKryptografisesti turvallinen
Entropian lähdeAlgoritmin siemenJärjestelmän CSPRNG
NopeusErittäin nopeaNopea
Ennustettavissa?Mahdollisesti kylläEi
Soveltuu turvallisuuteen?EiKyllä
Soveltuu tilastoihin?RiippuuKyllä

Generaattorimme käyttää aina kryptografisesti turvallista vaihtoehtoa, joten tulokset soveltuvat myös simulaatioihin, tilastollisiin laskelmiin tai arvontaan.

Arvonta ilman toistoja

Kun valitset “Kaksoiskappaleet estetty” -vaihtoehdon, generaattori varmistaa, että jokainen luku alueella esiintyy tuloksessa korkeintaan kerran. Tämä on ihanteellista:

  • Arvontaan – voittajien valitsemiseen ilman mahdollisuutta, että sama henkilö voittaa kahdesti
  • Permutaatioihin – elementtien satunnaiseen uudelleenjärjestelyyn
  • Bingoon – numeroiden vetämiseen ilman toistoja
  • Lottoon – 7 eri numeroa alueelta 1–40 (Suomalainen Lotto)

Jos vaadittujen lukujen määrä ylittää alueen koon, generaattori näyttää virheilmoituksen.

Tulosten vienti

Generoidut numerot voidaan kopioida kahdessa muodossa:

  • Pilkulla eroteltuna12, 45, 7, 33 – sopii taulukkoihin (Excel, Google Sheets)
  • Rivinvaihdolla eroteltuna – jokainen numero omalla rivillään – sopii tekstitiedostoihin tai skriptin käsittelyyn

Kuinka luoda satunnaislukuja omassa koodissa?

JavaScript / TypeScript

// Kryptografisesti turvallinen satunnainen kokonaisluku alueella [min, max]
function randomInt(min, max) {
  const range = max - min + 1;
  const arr = new Uint32Array(1);
  crypto.getRandomValues(arr);
  return min + (arr[0] % range);
}

// Näennäissatunnainen (nopea, mutta ei turvallinen)
const n = Math.floor(Math.random() * (max - min + 1)) + min;

Python

import random
import secrets

# Kryptografisesti turvallinen
n = secrets.randbelow(max - min + 1) + min

# Näennäissatunnainen (standardikirjasto)
n = random.randint(min, max)

# Ilman toistoja
sample = random.sample(range(min, max + 1), count)

PHP

// Kryptografisesti turvallinen (PHP 7+)
$n = random_int($min, $max);

// Näennäissatunnainen (vanhempi lähestymistapa)
$n = rand($min, $max);

Usein kysytyt kysymykset (FAQ)

Ovatko tulokset todella satunnaisia? Kyllä. Käytämme crypto.getRandomValues()-funktiota, joka on selaimessa toteutettu kryptografisesti turvallinen näennäissatunnaislukugeneraattori (CSPRNG). Tulokset ovat tilastollisesti tasaisesti jakautuneita ja ennustamattomia.
Kuinka monta lukua voin luoda kerrallaan? Enintään 10 000 lukua yhdellä luontikerralla. Suurempiin määriin suosittelemme käyttämään skriptiä tai erikoisohjelmistoa.
Voinko luoda negatiivisia lukuja? Kyllä, aseta minimi negatiiviseksi arvoksi (esim. -100) ja maksimi mille tahansa luvulle. Generaattori tukee JavaScriptin lukualueen kokoa.
Miten "Lajittele tulokset" toimii? Luvut generoidaan ensin satunnaisesti ja lajitellaan sitten nousevasti. Tämä ei vaikuta satunnaisuuteen – vain näyttötapaan.
Voinko luoda lukuja desimaalipaikoilla? Kyllä, kytke päälle "Desimaaliluvut" -kytkin ja aseta haluttu desimaalipaikkojen määrä (1–10). Generaattori palauttaa sitten tasaisesti jakautuneita lukuja annetulla alueella.
Miksi Lotto-esiasetus on asetettu 1–40? Tämä vastaa Suomalaista Lottoa (Veikkaus), jossa arvotaan 7 numeroa alueelta 1–40. Tulokset ovat lajiteltuja ja ilman toistoja, aivan kuten todellisessa arvonnassa.