Cosa significa generare numeri casuali
Generare un numero casuale vuol dire ottenere un valore imprevedibile all'interno di un intervallo definito, dove ogni risultato possibile ha la stessa probabilità di comparire. Esistono due famiglie principali. I numeri veramente casuali derivano da fenomeni fisici, come il rumore elettronico o eventi atmosferici, e non seguono alcuno schema ripetibile. I numeri pseudo-casuali, invece, nascono da un algoritmo che parte da un seme iniziale e produce una sequenza che appare casuale ma è in teoria riproducibile.
Nei browser la funzione Math.random() rientra nella seconda categoria e copre bene la maggior parte degli usi quotidiani, ma non è pensata per scopi crittografici. Per questo motivo, quando il contesto lo consente, questo strumento si appoggia a una sorgente più robusta come crypto.getRandomValues(), che offre una qualità superiore della casualità.
Capire questa distinzione aiuta a scegliere lo strumento giusto: per un gioco o un sorteggio tra amici la pseudo-casualità è più che sufficiente, mentre per chiavi di sicurezza servono soluzioni dedicate.