PK Systems PK Systems
Generatori

Generatore di Numeri Casuali

Estrai numeri in qualsiasi intervallo — con o senza duplicati, ordinati o mescolati, pronti per il copia-incolla.

Generatore di Numeri Casuali

Risultato

Cosa fa questo strumento

Genera numeri interi casuali in qualsiasi intervallo a tua scelta, in qualsiasi quantità da 1 a 10.000. Attiva o disattiva i duplicati (disattivati per estrazioni uniche tipo lotteria, attivati per simulare sequenze di dadi o monete), scegli di ordinare l'output in modo crescente o lasciarlo mescolato e seleziona il formato che desideri — un numero per riga, separati da virgola per i fogli di calcolo, separati da spazi per un rapido incolla nella CLI o come letterale di array JavaScript per il codice. La casualità è correttamente uniforme: usiamo crypto.getRandomValues() con campionamento per rifiuto per eliminare il bias modulo che Math.random() % range introduce. Per estrazioni uniche su intervalli densi, eseguiamo uno shuffle parziale di Fisher-Yates; per intervalli sparsi, un hash-set con riprove. Tutto viene eseguito in locale — nessun caricamento, nessun log, nessun limite di velocità.

Come usarlo

Imposta un minimo e un massimo — possono essere negativi, zero o qualsiasi valore intermedio. Imposta quanti numeri ti servono. Decidi se consentire i duplicati (disattiva per le lotterie, attiva per i lanci ripetuti). Decidi se ordinare l'output in modo crescente. Scegli un formato: righe, virgola, spazio o array. Premi Genera. Il risultato appare nel pannello; se hai chiesto un solo numero, viene mostrato grande; se ne hai chiesti molti, in un blocco di codice scorrevole. Premi Copia per inviare tutto agli appunti. Rieseguendo con le stesse impostazioni si ottiene una nuova estrazione ogni volta — non c'è alcun seed.

Come funziona la casualità

Ogni estrazione campiona un intero a 32 bit da crypto.getRandomValues() e rifiuta qualsiasi estrazione superiore a floor(2^32 / range) * range. L'estrazione accettata modulo range più min è il tuo numero — dimostrabilmente uniforme su tutto l'intervallo. Per le estrazioni uniche, usiamo una di due strategie: quando l'intervallo è abbastanza denso (≤ 200.000 valori), materializziamo il pool completo e applichiamo lo shuffle parziale di Fisher-Yates alle prime count voci — è O(count), non O(range). Quando l'intervallo è sparso e grande, usiamo un hash-set con riprove — limitato dal massimo di 10.000 estrazioni in modo che le riprove non esplodano mai. L'ordinamento (quando attivato) è un passaggio crescente finale.

Impostazioni comuni

Alcune combinazioni di esempio per iniziare.

Uso Impostazioni
Numeri della lotteria (5/49)Min 1, max 49, quantità 5, duplicati off, ordinamento on
Sequenza di lanci (10 lanci)Min 0, max 1, quantità 10, duplicati on
Byte di colore casualeMin 0, max 255, quantità 1
Estrai 3 vincitori da 100Min 1, max 100, quantità 3, duplicati off

Domande frequenti

È davvero casuale?
Sì — verificabilmente uniforme. Usiamo crypto.getRandomValues() con campionamento per rifiuto, che è l'approccio CSPRNG standard per intervalli di interi imparziali.
Perché chiedere più numeri unici di quanti l'intervallo consenta?
Lo strumento lo intercetta e mostra un errore — non c'è modo di estrarre 10 numeri unici da un intervallo di 5. O attivi i duplicati o allarghi l'intervallo.
Posso impostare un seed per l'RNG?
No. I CSPRNG per design non possono essere inizializzati con un seed per la riproducibilità — questo annullerebbe la garanzia di sicurezza. Se ti serve un output "casuale" riproducibile per i test, usa una libreria PRNG con seed nel codice.
Qual è il numero massimo?
10.000 per esecuzione. Oltre, l'output diventa ingestibile nel browser; per estrazioni più grandi, esegui lo strumento più volte o generale lato server.
Funziona con i numeri negativi?
Sì. Min e max possono essere qualsiasi numero intero, positivo o negativo. L'intervallo è max − min + 1, quindi assicurati che max ≥ min.
Viene inviato qualcosa in rete?
No. La generazione avviene nel tuo browser. L'output resta in locale finché non lo copi.