DevToys Web Pro iconDevToys Web ProBlog
Valutaci:
Prova l'estensione del browser:

Generatore di numeri casuali

Modalità

Opzioni

Min
Max
Numero

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.