ADVERTISEMENT

Mobile Banner
320×100

Generatore di Numeri Casuali

Genera numeri casuali nell'intervallo che specifichi

Come Funzionano i Numeri Casuali

Formula dell'Intervallo
Caricamento formula...
Distribuzione Uniforme
Caricamento formula...
Probabilita
Caricamento formula...

Informazioni sulla Generazione di Numeri Casuali

I generatori di numeri casuali (RNG) creano sequenze di numeri privi di qualsiasi pattern. Questo generatore usa casualita crittograficamente sicura quando disponibile, garantendo risultati equi e imprevedibili per giochi, estrazioni e selezioni.

Ogni numero nell'intervallo specificato ha una probabilita uguale di essere selezionato. Se generi 10 numeri tra 1 e 100, ogni numero ha l'1% di probabilita per ogni estrazione. Con i duplicati consentiti, lo stesso numero puo apparire piu volte.

Questi numeri casuali sono generati lato client nel tuo browser usando la Web Crypto API quando disponibile. Sono adatti per giochi e uso occasionale, anche se non per scopi crittografici.

Usi Comuni

🎲

Dadi e Giochi

Simula lanci di dadi, peshe di carte o qualsiasi gioco d'azzardo. Imposta 1-6 per un dado.

🎫

Estrazioni e Lotterie

Estrai numeri vincenti o seleziona vincitori casuali da una lista di partecipanti.

📊

Campionamento Casuale

Seleziona partecipanti casuali per sondaggi o elementi casuali per test.

🔀

Processo Decisionale

Non riesci a decidere? Lascia che i numeri casuali scelgano tra le opzioni.

Preimpostazioni Rapide

Caso d'UsoMinMaxQuantita
Dado Standard161
Coppia di Dadi162
Lancio Moneta121
Lotteria (1-90)1905 (senza duplicati)
Carta da Gioco1521
Percentuale01001

Consigli per una Selezione Casuale Equa

🚫

Disabilita i Duplicati per le Estrazioni

Per estrazioni e lotterie, disattiva i duplicati cosi ogni numero/persona puo essere selezionato una sola volta.

📝

Documenta il Processo

Per estrazioni importanti, registra le impostazioni usate e i risultati per trasparenza.

🔄

Ri-genera se Necessario

Se hai bisogno di un nuovo set, semplicemente rigenera. I risultati passati non influenzano le generazioni future.

🎯

Testa Prima

Esegui alcune generazioni di prova per assicurarti che le impostazioni producano i risultati attesi.

Domande Frequenti

Questi numeri sono veramente casuali?

Sono pseudo-casuali, generati da algoritmi seminati con valori imprevedibili. Per giochi e uso quotidiano, sono effettivamente casuali. Per sicurezza crittografica o applicazioni ad alta posta, sono necessari sistemi specializzati.

Lo stesso numero puo apparire due volte?

Solo se consenti i duplicati. Con i duplicati disabilitati, ogni numero puo apparire solo una volta nei risultati, perfetto per estrazioni dove servono selezioni uniche.

Come seleziono un elemento casuale da una lista?

Numera i tuoi elementi da 1 a N, poi genera un numero casuale in quell'intervallo. Il numero corrisponde all'elemento selezionato. Oppure genera piu numeri per selezionare piu vincitori.

C'e un pattern nei numeri?

Nessun pattern riconoscibile. Ogni generazione e indipendente dalle precedenti. La 'fallacia del giocatore', pensare che un numero sia 'dovuto', non si applica. Ogni numero ha uguale probabilita ogni volta.

Esempi

Estrazione di un numero casuale tra 1 e 90 (stile Lotto)

Un'associazione di quartiere organizza una piccola estrazione benefica in stile Lotto italiano. Vuole estrarre 5 numeri unici nell'intervallo da 1 a 90, registrando la procedura per garantire trasparenza ai partecipanti.

RisultatoCinque numeri interi distinti nell'intervallo [1, 90]; ogni combinazione ha la stessa probabilita di essere estratta.

Il generatore chiama crypto.getRandomValues per ottenere valori a 32 bit dall'entropia del sistema operativo, applica il rejection sampling per evitare distorsioni statistiche, poi mappa i valori nell'intervallo [1, 90] con la formula min + floor(r * (max - min + 1)). Con i duplicati disabilitati, ogni numero estratto viene rimosso dal pool prima dell'estrazione successiva, replicando esattamente il comportamento di un'urna fisica. Per estrazioni regolamentate dall'ADM (Agenzia delle Dogane e dei Monopoli) e necessario un sistema certificato; questo strumento e indicato per estrazioni informali e tombole familiari, registrando intervallo, quantita, impostazione duplicati e risultati per trasparenza.

Domande frequenti

Qual è la differenza tra un PRNG e un TRNG?

Un generatore pseudo-casuale (PRNG) è un algoritmo deterministico: dato lo stesso seme, produce la stessa sequenza. Un generatore veramente casuale (TRNG) estrae entropia da un processo fisico come rumore termico, rumore atmosferico o effetti quantistici, quindi il suo output non può essere riprodotto nemmeno conoscendo i valori passati. La maggior parte del software, incluso questo strumento, usa un PRNG crittografico (CSPRNG) seminato dall'entropia del sistema operativo, alimentata da sorgenti hardware e imprevedibile in pratica.

Perché Math.random() non è sicuro per la crittografia?

Math.random() nei motori JavaScript è un PRNG veloce non crittografico, storicamente basato su algoritmi come xorshift128+. Il suo stato interno può essere ricostruito da un attaccante che osservi anche solo poche uscite, rendendo i valori passati e futuri prevedibili. MDN avverte esplicitamente di non usare Math.random() per nulla che riguardi la sicurezza. Usa crypto.getRandomValues per token, chiavi, password e qualsiasi estrazione che debba resistere a manipolazioni.

Cos'è la Web Crypto API e crypto.getRandomValues?

La Web Crypto API è uno standard W3C che espone primitive crittografiche nei browser. Il metodo crypto.getRandomValues riempie un array tipizzato (Uint8Array, Uint32Array) con valori generati da un CSPRNG seminato dall'entropia del sistema operativo. Lo standard richiede che l'implementazione sia non bloccante e che l'output sia indistinguibile da una sorgente veramente casuale per qualsiasi avversario polinomiale. Tutti i browser moderni (Chrome, Firefox, Safari, Edge) la implementano con seme da CryptGenRandom (Windows), /dev/urandom (Linux) o SecRandomCopyBytes (macOS/iOS).

Cosa dice la NIST SP 800-90A sui generatori casuali?

La pubblicazione speciale NIST SP 800-90A Rev. 1 definisce i Deterministic Random Bit Generators (DRBG) approvati per uso crittografico: HMAC_DRBG, Hash_DRBG e CTR_DRBG. Stabilisce requisiti su forza dell'entropia in ingresso, lunghezza minima del seme, reseeding periodico e test di salute. È il riferimento normativo per sistemi certificati FIPS 140 e viene seguito anche da implementazioni open source come OpenSSL e dalle API crittografiche di Windows e Linux. Il vecchio algoritmo Dual_EC_DRBG è stato ritirato nel 2014 per sospetto backdoor.

Le estrazioni online in Italia sono regolamentate dall'ADM?

Sì. L'Agenzia delle Dogane e dei Monopoli (ADM) regola i giochi pubblici in Italia, inclusi Lotto, SuperEnalotto, lotterie nazionali e concorsi a premi. Le estrazioni regolamentate devono usare sistemi certificati con generatori conformi a standard internazionali (tipicamente NIST SP 800-90A o equivalenti ISO), audit indipendenti e tracciabilità completa. Per concorsi a premi con valore superiore a determinate soglie è richiesta autorizzazione ministeriale e presenza di un notaio o funzionario ADM. Questo strumento è adatto per estrazioni informali (tombole, sorteggi tra amici, decisioni casuali) ma non sostituisce un sistema certificato per giochi pubblici.

Cos'è l'algoritmo Mersenne Twister usato da IBM e altri linguaggi?

Il Mersenne Twister (MT19937), sviluppato da Makoto Matsumoto e Takuji Nishimura nel 1997, è un PRNG con periodo 2^19937 - 1 utilizzato come default in Python (random), R, MATLAB, PHP, Ruby e molte librerie IBM e SAS per simulazioni statistiche. Ha eccellenti proprietà di equidistribuzione fino a 623 dimensioni e supera la maggior parte dei test statistici (DIEHARD, TestU01 SmallCrush). Tuttavia non è crittograficamente sicuro: osservando 624 output consecutivi è possibile ricostruire lo stato interno e prevedere tutte le uscite future. È ottimo per Monte Carlo e simulazioni, ma per token e estrazioni a valore reale serve un CSPRNG come crypto.getRandomValues.

I numeri sono distribuiti uniformemente?

Sì. Il generatore usa il rejection sampling in modo che ogni intero in [min, max] abbia probabilità identica 1 / (max - min + 1). Un approccio ingenuo basato sul modulo di un valore a 32 bit introduce piccole distorsioni quando l'intervallo non divide esattamente 2^32; il rejection sampling le evita. Su un grande numero di estrazioni l'istogramma converge a piatto, e i test chi-quadro standard applicati all'output di crypto.getRandomValues non mostrano deviazioni statisticamente significative dall'uniformità.

Posso impostare un seme per riprodurre i risultati?

Non con questo strumento. crypto.getRandomValues volutamente non espone alcun seme, perché la riproducibilità ne vanificherebbe lo scopo di sicurezza. Se hai bisogno di una sequenza riproducibile (ad esempio per test di regressione o simulazioni condivise), usa un PRNG seminato come Mulberry32, PCG o lo stesso Mersenne Twister documentando il seme accanto ai risultati. Per estrazioni soggette ad audit, documenta intervallo, quantità, impostazione duplicati, timestamp e lista completa dei risultati invece di tentare di rigiocare l'estrazione.

Fonti

Suggerimenti Pro

  • Aggiungi questo calcolatore ai preferiti per un accesso rapido
  • Usa il pulsante di condivisione per inviare i tuoi risultati
  • Prova scenari diversi per confrontare i risultati
  • Scopri i nostri calcolatori correlati per ulteriori informazioni

Hai trovato utile questo calcolatore? Condividilo:

Incorpora questo calcolatore