🔧Toolify

Generatore di Numeri Casuali (crittograficamente sicuro, modalità

Scegli un minimo, un massimo e un conteggio per generare interi casuali crittograficamente sicuri. Attiva 'unico' per il campionamento senza ripetizione (sorteggi, lotterie).

Imposta un intervallo e clicca 'Rigenera' per ottenere numeri casuali.

Come funziona

Perché questo è davvero casuale

Usiamo crypto.getRandomValues — la fonte casuale crittograficamente sicura del browser — invece di Math.random(). L'output CSPRNG non può essere previsto dai valori precedenti, il che è importante per le estrazioni della lotteria, le applicazioni vicine al gioco d'azzardo e qualsiasi uso in cui 'casuale' è un requisito reale, non solo 'arbitrario'.

Usiamo anche il campionamento per rifiuto per rendere la distribuzione esattamente uniforme nell'intervallo scelto. Il 'casuale % intervallo' naive introduce distorsioni quando l'intervallo non si divide uniformemente in 2³². Il campionamento per rifiuto scarta i valori che causerebbero distorsioni e riprova, così ogni numero nell'intervallo ha esattamente la stessa probabilità.

Unico vs duplicati ammessi

Modalità predefinita: ogni numero è indipendente — possono verificarsi duplicati. Questo è ciò che 'casuale' di solito significa nell'uso comune (lanciare i dadi, scegliere un film, test randomizzato).

Modalità unica: campionamento senza ripetizione — una volta che un numero viene scelto, non può essere scelto di nuovo nello stesso batch. Utile per: estrazioni della lotteria (es. 6 numeri da 1-90), sorteggi (estrazione vincitori), assegnazioni di squadre e qualsiasi situazione 'scegli N da M'. Richiede conteggio ≤ intervallo.

Casi d'uso comuni

Lotteria / sorteggio: 6 numeri unici da 1-90 (Superenalotto), o qualunque sia la tua estrazione. Attiva 'unico'.

Lanci di dadi: intervallo 1-6 (o 1-20 per D20). Lascia 'unico' disattivato così ogni lancio è indipendente.

Campionamento casuale per test: scegli 10 ID utente casuali da 1-10000 per un controllo spot. Usa 'unico' per evitare duplicati.

Simulazione di lanci di moneta: intervallo 0-1, risultati multipli. Conta testa/croce per verifica dell'equità (vedrai ~50/50 su campioni grandi).

Domande frequenti

È equo per sorteggi o lotterie?

La casualità è crittograficamente sicura e senza distorsioni. Se sia legalmente 'equo' per una lotteria ufficiale dipende dalle regole della tua giurisdizione — molte richiedono RNG hardware certificati.

Qual è la differenza da Math.random()?

Math.random() usa un algoritmo il cui output può essere previsto dai risultati precedenti da un attaccante. crypto.getRandomValues usa un RNG crittografico a livello di sistema operativo che non può essere previsto. Per vera equità, usa questo.

Posso ottenere numeri negativi?

Sì. Imposta il minimo su un valore negativo.

Qual è l'intervallo massimo?

Limitato dall'intervallo degli interi sicuri di JavaScript (~2⁵³), ma praticamente puoi arrivare a miliardi senza problemi. La tecnica di campionamento per rifiuto gestisce correttamente qualsiasi intervallo.

Perché 'unico' fallisce quando il conteggio > intervallo?

Se scegli 10 numeri unici da 1-5, quattro non esistono. La convalida lo rileva e ti chiede di allargare l'intervallo o ridurre il conteggio.

Funziona per i lanci di dadi?

Sì — imposta l'intervallo su 1-6 (o qualunque siano i tuoi dadi) e disattiva 'unico' così ogni lancio è indipendente.

Posso salvare il seme e riprodurre?

No — il casuale sicuro è progettato senza seme. Se hai bisogno di 'casuale' riproducibile per test, usa una libreria PRNG con seme.

I dati vengono inviati da qualche parte?

No. La generazione è completamente locale.

Strumenti correlati

Ultimo aggiornamento:

Prova i nostri prompt IA →