
Generátor náhodných čísel online
Online generátor náhodných čísel z libovolného rozsahu. Náhodné číslo jedním kliknutím + kód pro JavaScript, PHP, Python a další jazyky.
Generátor více náhodných čísel
Potřebujete vygenerovat více čísel najednou? Zadejte rozsah a počet.
Kolo štěstí
Zadejte položky (každou na nový řádek) a roztočte kolo.
Generátor kódu pro náhodná čísla
Následující generátor po zadání nejnižšího a nejvyššího čísla připraví kód pro vygenerování náhodného čísla z daného rozsahu v různých jazycích.
Počet možných čísel:
JavaScript:
PHP:
Python:
Java:
C#:
Ruby:
Rust:
Go:
Náhodné číslo v JavaScriptu
V JS se pro generování náhodného čísla používá Math.random().
const nahodne = Math.random();
V proměnné nahodne bude něco mezi 0 a 1, například 0.6577748781199532. Vyjít může i přesná nula, ale vždy bude číslo menší než 1.
Protože je zpravidla nutné mít čísla celá, násobí se to celé počtem požadovaných čísel. Tj. pro vygenerování deseti čísel:
nahodne = nahodne * 10;
Obsah nahodne teď bude něco jako 6.577748781199532. Pro dosažení celých čísel se potom provede zaokrouhlení.
nahodne = Math.floor(nahodne);
A výsledkem je 6. Metoda Math.floor zaokrouhluje dolů, takže výsledek bude nabývat hodnot 0 až 9. Použití jiného způsobu zaokrouhlení (Math.round/Math.ceil) by vedlo k nerovnoměrnému rozdělení jednotlivých čísel.
Následný obrázek srovnává četnosti jednotlivých čísel při různých způsobech zaokrouhlení.

Je-li cílem dostat místo 0–9 číslo z rozsahu 1 až 10, stačí přičíst jedničku.
nahodne = nahodne + 1;
Potřebujete-li bezpečnou náhodnost (např. pro identifikátory nebo tokeny), použijte crypto.getRandomValues.
function secureRandomInt(min, max) {
const range = max - min + 1;
const buf = new Uint32Array(1);
crypto.getRandomValues(buf);
return min + (buf[0] % range);
}
Jakou náhodnost zvolit v JavaScriptu
Pro běžné UI a logiku použijte Math.random().
const n = Math.floor(Math.random() * 10) + 1;
Pro bezpečnost, tokeny a identifikátory použijte Web Crypto.
crypto.randomUUID();
const bytes = new Uint8Array(32);
crypto.getRandomValues(bytes);
Pro reprodukovatelné výsledky použijte seedovatelný PRNG.
TypeScript funkce
Užitečné typované funkce pro běžnou práci s náhodností v TypeScriptu.
Celé číslo v rozsahu:
export function randomInt(min: number, max: number): number {
const a = Math.ceil(min);
const b = Math.floor(max);
return Math.floor(Math.random() * (b - a + 1)) + a;
}
Náhodná položka z pole:
export function randomItem(items: readonly T[]): T {
if (items.length === 0) throw new Error('items must not be empty');
const index = Math.floor(Math.random() * items.length);
return items[index];
}
Bezpečné celé číslo pomocí Web Crypto:
export function secureRandomInt(min: number, max: number): number {
const a = Math.ceil(min);
const b = Math.floor(max);
const range = b - a + 1;
const buf = new Uint32Array(1);
crypto.getRandomValues(buf);
return a + (buf[0] % range);
}
Náhodné číslo PHP
V PHP je pro náhodné celé číslo z daného rozsahu doporučené použít random_int (od PHP 7). Funkci se zadává rozsah čísel, ze kterých se má výsledek vygenerovat.
Obě čísla parametrů znamenají včetně, takže následující kód vygeneruje čísla 1–10.
random_int(1, 10);
Pro kryptograficky bezpečná data (např. tokeny) použijte random_bytes a případně je převeďte do čitelného formátu.
Náhodné číslo v dalších jazycích
Nejčastější způsob, jak získat náhodné celé číslo v rozsahu min..max v populárních jazycích.
Python:
import random
random.randint(1, 10) # včetně obou krajů
Go:
import (
"crypto/rand"
"math/big"
)
// 1..10 včetně
nBig, _ := rand.Int(rand.Reader, big.NewInt(10))
n := int(nBig.Int64()) + 1
Ruby:
rand(1..10) # včetně 1 i 10
Rust:
use rand::Rng;
let n = rand::thread_rng().gen_range(1..=10);
Java (Java 17+):
import java.util.concurrent.ThreadLocalRandom;
int n = ThreadLocalRandom.current().nextInt(1, 11); // 1..10
C# (.NET 6+):
var n = Random.Shared.Next(1, 11); // 1..10
Stále stejné náhodné číslo
Zvlášť při malém počtu čísel a malém počtu opakování se může stát, že bude nějaké číslo padat podezřele často.
Pokud prvek náhody nemusí být matematicky přesný, ale jde hlavně o dojem uživatele, dá se tomu trochu pomoci. Například zabránit vygenerování téhož čísla dvakrát po sobě.
Ukázka – nikdy se nevygeneruje stejné číslo dvakrát za sebou
Pokud je navíc cílem zobrazit všechny náhodné položky, hodí se ještě požadovat, aby se nějaké číslo mohlo vygenerovat podruhé až v okamžiku, kdy každé číslo z rozsahu už alespoň jednou padlo.
V případě PHP je nutné vygenerovaná náhodná čísla někam ukládat – například do pole $_SESSION.
Pseudonáhodná vs. náhodná čísla
Většina funkcí v programovacích jazycích (jako Math.random() v JS nebo rand v Ruby) generuje pseudonáhodná čísla. Vypočítá je algoritmus, který z počáteční hodnoty (seed) vytváří posloupnost čísel, jež vypadají náhodně, ale jsou plně deterministická – ze stejného seedu vždy vznikne stejná sekvence.
Pro běžné použití (hry, UI, simulace) to plně stačí. Tam, kde na náhodnosti záleží z hlediska bezpečnosti (tokeny, hesla, kryptografie), je potřeba použít kryptograficky bezpečný generátor – například crypto.getRandomValues v JavaScriptu nebo random_int v PHP. Tyto funkce čerpají entropii z operačního systému (šum hardwaru apod.) a jejich výstup nelze předpovědět.
Využití
Na základě vygenerování náhodného čísla se dá potom i vypisovat náhodný obsah. Náhodnost je také klíčová pro generování bezpečných hesel.
Související články
JSON – formát a online nástroje
Co je JSON a jak s ním pracovat. Online formátovač, validátor a diff.
Výpis náhodného textu
Jak na stránce náhodně vypsat obrázek, odkaz, reklamu, text nebo cokoliv jiného.
Instalace Apache, PHP a MySQL za 30 vteřin
Jak si ve Windows spustit vlastní Apache, PHP a MySQL na svém PC za půl minuty.