Generatore di Numeri Casuali
Estrai numeri in qualsiasi intervallo — con o senza duplicati, ordinati o mescolati, pronti per il copia-incolla.
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 casuale | Min 0, max 255, quantità 1 |
| Estrai 3 vincitori da 100 | Min 1, max 100, quantità 3, duplicati off |
Domande frequenti
È davvero casuale?
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?
Posso impostare un seed per l'RNG?
Qual è il numero massimo?
Funziona con i numeri negativi?
max − min + 1, quindi assicurati che max ≥ min.