Skip to main content
CheckTown
Generatori

Generatore di numeri casuali: Numeri veramente imparziali online

Pubblicato 5 min di lettura
In questo articolo

Cos'è la generazione di numeri casuali?

La generazione di numeri casuali è il processo di produzione di numeri che non possono essere previsti in anticipo. I computer sono macchine deterministiche — non possono produrre vera casualità senza input esterni. Diverse tecniche producono qualità diverse di casualità, il che è di grande importanza per le applicazioni di sicurezza.

I generatori di numeri veramente casuali (TRNG) raccolgono entropy da fenomeni fisici: movimenti del mouse, timing della tastiera, tempi di arrivo dei pacchetti di rete, o sensori hardware dedicati. I generatori di numeri pseudo-casuali (PRNG) usano algoritmi matematici alimentati con entropy per produrre sequenze che sembrano casuali.

Come vengono generati i numeri casuali

CheckTown utilizza il generatore di numeri casuali crittograficamente sicuro del browser.

  • Fonte di entropy — usa window.crypto.getRandomValues() che attinge dall'entropy a livello di sistema operativo
  • Mappatura dell'intervallo — mappa i valori casuali grezzi nell'intervallo min/max specificato senza distorsioni
  • Generazione in batch — genera più numeri contemporaneamente per liste, array o esigenze in blocco

Prova gratuitamente — nessuna registrazione richiesta

Genera numeri casuali →

Quando usare un generatore di numeri casuali

La generazione di numeri casuali ha molte applicazioni nello sviluppo, nel testing e nelle statistiche.

  • Testing — genera dati di test casuali per popolare fixture o inizializzare database di test
  • Campionamento — seleziona campioni casuali da dataset per analisi statistiche o assegnazione di test A/B
  • Giochi e simulazioni — genera input imprevedibili per simulazioni, giochi o lotterie

Domande frequenti

Qual è la differenza tra Math.random() e crypto.getRandomValues()?

Math.random() usa un PRNG veloce inizializzato all'avvio. È adatto per simulazioni e giochi, ma non per la sicurezza. crypto.getRandomValues() usa il CSPRNG del sistema operativo (PRNG Crittograficamente Sicuro), adatto per generare token, chiavi e altri valori sensibili alla sicurezza. Usa sempre crypto.getRandomValues() per scopi di sicurezza.

Posso usare numeri casuali per le chiavi crittografiche?

Sì, ma solo se generati con un CSPRNG. I numeri casuali da Math.random() o PRNG non crittografici simili sono prevedibili dato il seed e abbastanza campioni di output. Le chiavi crittografiche, i token, i salt e i nonce devono essere generati con casualità crittograficamente sicura.

Cos'è il modulo bias e come influenza gli intervalli di numeri casuali?

Il modulo bias si verifica quando si mappa un valore casuale su un intervallo usando l'operatore %. Se lo spazio dei valori casuali non è uniformemente divisibile per la dimensione dell'intervallo, alcuni valori appaiono più frequentemente di altri. Ad esempio, mappare 0-255 su 0-9 usando % 10 fa sì che 0-5 appaiano leggermente più spesso. CheckTown usa il rejection sampling per eliminare le distorsioni.

Strumenti correlati