Generatore di numeri casuali
Opzioni
Output
Dettagli tecnici
Come funziona il generatore di numeri casuali
Cosa fa lo strumento
Il generatore di numeri casuali produce interi o numeri in virgola mobile casuali crittograficamente robusti usando la Web Crypto API (crypto.getRandomValues). Impiega il rejection sampling per eliminare il modulo bias, garantendo una distribuzione uniforme su qualsiasi intervallo specificato. Puoi generare singoli valori o batch di numeri casuali con impostazioni configurabili di minimo, massimo e precisione.
Casi d’uso comuni per sviluppatori
Gli sviluppatori usano generatori di numeri casuali crittografici per attività sensibili alla sicurezza come la generazione di token di sessione non indovinabili, nonce, estrazioni di lotteria o campionamenti casuali da dataset. Gli sviluppatori di giochi li usano per lanci di dadi e generazione procedurale quando l’equità conta. Gli ingegneri QA generano input di test casuali per il fuzz testing e i data scientist li usano per campionamenti casuali quando la riproducibilità non è richiesta.
Formati, tipi o varianti dei dati
Lo strumento supporta la generazione di interi entro un intervallo arbitrario (limiti inclusivi) e la generazione di numeri in virgola mobile con precisione decimale configurabile. Il rejection sampling scarta i valori che causerebbero modulo bias quando l’intervallo non divide in modo uniforme lo spazio di output della sorgente casuale. L’entropia sottostante proviene dal CSPRNG del sistema operativo (CryptGenRandom su Windows, /dev/urandom su Unix) esposto tramite la Web Crypto API del browser.
Errori comuni e casi limite
La casualità crittografica è più lenta di Math.random() ed è inutile per usi non legati alla sicurezza come mescolare una playlist. Il rejection sampling può teoricamente ripetere il ciclo molte volte per intervalli patologici, anche se in pratica è trascurabile. I numeri casuali generati dal browser non possono essere inizializzati con un seed per la riproducibilità — se ti servono sequenze deterministiche per i test, usa invece un PRNG con seed. L’intervallo massimo di interi sicuri è limitato da Number.MAX_SAFE_INTEGER di JavaScript (2^53 - 1).
Quando usare questo strumento rispetto al codice
Usa lo strumento nel browser quando ti serve un numero casuale rapido e senza bias per una decisione una tantum, test manuali o per verificare che la tua implementazione produca valori entro gli intervalli attesi. Per l’uso in produzione, chiama crypto.getRandomValues() direttamente nel tuo codice oppure usa funzioni CSPRNG native del linguaggio (modulo secrets in Python, SecureRandom in Java) che si integrano con la gestione degli errori e il logging della tua applicazione.