Random Number Generator

Random Number Generator

Free client-side developer and designer tool.

Format Numérique (FR / Intl)
Taille de l'Échantillon0
Moyenne Arithmétique0.00
Valeur p de Chi-Carrép = 1
Densité d'Entropie0 bits
Configuration du Générateur
CSPRNG Matériel
Borne Minimale (Min)
Borne Maximale (Max)
10
Tirage Unique Sans RemiseEmpêche la répétition des numéros tirés (échantillonnage sans remise)
Précision DécimaleNombre de chiffres après la virgule (0 pour des entiers)
Séquence des Tirages Aléatoires(0 Observations Enregistrées)
Référence technique et guide d'architecture

Générateur de Nombre Aléatoire & RNG — Guide de référence

Générateur de nombres aléatoires haute performance, cryptographique ou avec graine (seed). Générez des entiers, décimaux, distributions gaussiennes et tirages au sort avec télémétrie d'uniformité du Chi-deux en temps réel et export instantané.

Générateur de Nombre Aléatoire & RNG — Guide de référence — Architecture en mémoire côté client et flux de données
Générateur de Nombre Aléatoire & RNG — Guide de référence — Architecture en mémoire côté client et flux de données

Paramètres clés et contrôles

Bornes de l'intervalle (Min & Max)integer | float

Intervalle fermé inclusif [a, b] délimitant toutes les valeurs générées. Prend en charge les entiers sûrs 64 bits jusqu'à ±9 007 199 254 740 991.

Par défaut : 1 à 100
Taille de l'échantillon (Nombre N)integer

Quantité totale de nombres aléatoires générés par lot d'exécution. Prend en charge de 1 à 10 000 tirages sans aucun gel du thread principal de l'interface.

Par défaut : 1
Moteur d'entropie & SourceCSPRNG | Mulberry32 PRNG

Bascule entre l'entropie matérielle cryptographiquement imprévisible (window.crypto) et un pseudo-aléatoire déterministe reproductible par graine (seed).

Par défaut : CSPRNG (Web Crypto)
Algorithme de distributionUniforme | Gaussienne | Exponentielle

Régit la densité de probabilité : Uniforme attribue une probabilité égale ; Gaussienne applique la transformation de Box-Muller ; Exponentielle modélise les intervalles d'arrivée selon un processus de Poisson.

Par défaut : Uniforme
Mode de tirage (Remise)Avec remise (doublons) | Sans remise (uniques)

En mode sans remise (tirage unique), le mélange partiel de réservoir Fisher-Yates garantit l'absence totale de doublons, exigeant que N ≤ Max - Min + 1.

Par défaut : Avec remise

Conseils de pro et bonnes pratiques

Biais du modulo et limites des opérations de reste natif en aléatoire pur

Les implémentations débutantes calculent souvent les plages aléatoires avec Math.floor(rng() * (max - min + 1)) ou un simple opérateur modulo (random % plage). Lorsque la plage d'entropie n'est pas un multiple exact de la plage cible, les plus petits nombres bénéficient d'un surplus de probabilité injustifié (biais du modulo). Cet outil applique un échantillonnage par rejet sur des entiers non signés 32 bits (uint32) afin de garantir une probabilité mathématiquement uniforme sur chaque valeur.

Prévisibilité de Math.random() face à l'entropie matérielle CSPRNG

V8 et les moteurs JavaScript modernes implémentent Math.random() via xorshift128+, un algorithme optimisé pour la rapidité d'exécution et non pour la sécurité. Après l'observation de seulement 2 à 3 nombres flottants 64 bits internes consécutifs, l'état interne complet de 128 bits peut être reconstitué à l'aide de solveurs SMT Z3, permettant de déduire toutes les valeurs futures. Privilégiez systématiquement le moteur CSPRNG pour les tirages au sort, l'attribution de jetons, la cryptographie et les loteries.

Transformation de Box-Muller pour un échantillonnage gaussien parfait

La génération d'une courbe en cloche continue nécessite de convertir deux variables aléatoires uniformes indépendantes U1 et U2 sur ]0, 1[ en variables normales standard centrées réduites : Z0 = sqrt(-2 * ln(U1)) * cos(2 * pi * U2). Notre moteur calcule cette transformation en double précision puis effectue la mise à l'échelle mu + Z0 * sigma, évitant l'approximation empirique et imprécise du théorème central limite par somme de 12 dés.

Pièges courants et dépannage

⚠️Erreur en tirage unique : La taille de l'échantillon dépasse les nombres disponibles dans la plage

En mode sans remise (valeurs uniques), le principe des tiroirs de Dirichlet impose que le nombre N ne dépasse pas (Max - Min + 1). Par exemple, extraire 60 nombres uniques entre 1 et 50 est mathématiquement impossible. Élargissez l'intervalle [Min, Max], réduisez la taille du tirage N ou désactivez le mode unique pour autoriser les doublons.

⚠️Le test d'adéquation du Chi-deux affiche une forte variance ou un écart de p-value sur de petits échantillons

Le test du Chi-deux de Pearson ne suit asymptotiquement une loi du χ² que si l'effectif théorique attendu dans chaque classe vérifie E_i ≥ 5. Sur de petits tirages (par exemple N = 20 répartis sur 10 classes, où E_i = 2), la variance aléatoire de Poisson engendre naturellement des p-values extrêmes. Pour valider rigoureusement l'uniformité statistique, générez au moins 500 à 1 000 échantillons.

Foire aux questions (FAQ)

Comment générer un nombre aléatoire sans aucun doublon ?▼

Pour générer des nombres sans répétition, le générateur procède par tirage sans remise à l'aide de l'algorithme de mélange de Fisher-Yates. À partir d'un tableau de valeurs allant de Min à Max, l'algorithme sélectionne itérativement un indice aléatoire cryptographiquement sûr et l'échange avec la position courante, extrayant N valeurs uniques en temps linéaire O(N) tout en garantissant l'équiprobabilité stricte de chaque permutation.

Quelle est la différence entre un CSPRNG et un générateur pseudo-aléatoire (PRNG) ?▼

Un générateur de nombres pseudo-aléatoires (PRNG) repose sur une formule de récurrence mathématique à partir d'une graine initiale (seed). Dès lors que la graine est connue, la séquence entière devient 100 % déterministe et prévisible. À l'inverse, un CSPRNG (tel que window.crypto.getRandomValues) collecte une entropie physique imprévisible issue des interruptions matérielles du système d'exploitation et du bruit thermique, satisfaisant au test du bit suivant où aucun algorithme en temps polynomial ne peut prédire les bits subséquents.

Comment générer des nombres aléatoires suivant une loi normale gaussienne ?▼

Notre outil applique la transformation polaire de Box-Muller pour convertir deux variables aléatoires indépendantes à distribution uniforme en deux variables aléatoires normales standard d'espérance 0 et de variance 1. Le résultat est ensuite mis à l'échelle via X = mu + Z * sigma, vous permettant de modéliser fidèlement des phénomènes concrets tels que les incertitudes de mesure, les quotients intellectuels, les cours financiers ou les variations biométriques.

Comment le test du Chi-deux vérifie-t-il l'uniformité de la répartition des nombres ?▼

Le test d'adéquation du Chi-deux segmente l'intervalle [Min, Max] en k classes d'égale largeur et calcule la statistique chi2 = sum((Observé - Attendu)^2 / Attendu), avec Attendu = N / k. En confrontant ce score chi2 à la loi théorique du χ² à k - 1 degrés de liberté, l'outil dérive une valeur p-value : une valeur située entre 0,05 et 0,95 atteste que la distribution observée est parfaitement conforme à un aléa théorique pur.

Pourquoi la fonction JavaScript Math.random() est-elle déconseillée en cryptographie et pour les loteries ?▼

La méthode Math.random() n'est ni cryptographiquement sécurisée ni initialisable par graine dans les navigateurs standards. Son moteur sous-jacent (xorshift128+ sous V8/Chrome et PCG sous WebKit/Safari) dispose d'un espace d'état restreint facilement déductible après seulement quelques tirages consécutifs, exposant les tirages au sort, les loteries, la génération de jetons d'authentification ou les opérations cryptographiques à des attaques par rétro-ingénierie.

Outils et utilitaires connexes

Tous les outils →