Plus de jeux sur WuGames.ioSponsoriséDécouvrez des jeux de navigateur gratuits — jouez aussitôt, sans téléchargement ni inscription.Jouer

Générateur de nombres aléatoires

Générateur de nombres aléatoires gratuit en ligne. Tirez un nombre entre n'importe quel min et max, un seul ou une liste, avec pas et séparateur personnalisables.

Comment les nombres aléatoires sont-ils générés ?

Il existe deux familles : les nombres vraiment aléatoires et les nombres pseudo-aléatoires. La différence compte plus qu'on ne croit.

L'aléa vrai vient de processus physiques imprévisibles par principe — temps de désintégration radioactive, bruit atmosphérique capté par un microphone, bruit thermique à l'intérieur des oscillateurs en anneau d'un CPU. L'aléa est fondamental, pas seulement opaque. Les générateurs matériels des puces modernes (RDRAND chez Intel et AMD, TrustZone chez ARM) injectent de l'entropie directement depuis ces sources.

Le pseudo-aléa provient d'algorithmes déterministes — Mersenne Twister, xorshift, PCG, ChaCha20. À graine identique, ils produisent toujours la même séquence. Ils sont extrêmement rapides et ont d'excellentes propriétés statistiques (ils passent Diehard et TestU01), mais ils ne sont pas imprévisibles pour qui connaît l'algorithme et la graine. crypto.getRandomValues du navigateur mélange une sortie pseudo-aléatoire avec l'entropie du système d'exploitation et ré-ensemence souvent, ce qui le rend cryptographiquement fort bien qu'il reste techniquement un PRNG.

Pourquoi la différence compte-t-elle ?

Cryptographie : clés de chiffrement, jetons de session, poignée de main TLS ont besoin d'imprévisibilité. Une faille dans la source aléatoire peut casser tout le système — voir le bug OpenSSL de Debian en 2008, qui a laissé environ 250 000 clés SSH devinables.

Équité : dans le jeu, les paris, les loteries, un aléa prévisible est exploitable. Les RNG certifiés (ceux des casinos régulés) exigent à la fois solidité cryptographique et piste d'audit.

Simulation : les méthodes de Monte-Carlo en physique, finance, machine learning consomment d'énormes volumes de nombres aléatoires. La vitesse y pèse plus que la solidité cryptographique — la plupart des chercheurs utilisent Mersenne Twister ou PCG, avec graine fixe pour reproduire les résultats.

Jetons de sécurité : liens de réinitialisation de mot de passe, clés API, secrets 2FA doivent être imprévisibles. Un générateur faible ici échoue en silence — rien ne casse visiblement, mais l'attaquant devine le jeton.

Échantillonnage : en sondages et statistique, chaque membre de la population doit avoir la même probabilité d'être tiré. Un générateur biaisé produit des données biaisées, et le biais ne se voit souvent qu'une fois la conclusion déjà fausse.

À propos du générateur de nombres aléatoires

Tirez un nombre entre un minimum et un maximum, ou générez une liste entière en une fois. Ce générateur s'appuie sur la source d'aléa cryptographique du navigateur (crypto.getRandomValues, la même primitive qui produit les clés de session TLS) plutôt que sur l'ancien Math.random, rapide mais assez prévisible pour qu'un attaquant motivé reconstruise son état interne après quelques sorties. Pour les tirages du quotidien — « qui commence ? », « quel restaurant ce soir ? », un tirage au sort au bureau — Math.random suffit. Dès que la prédiction a un coût, la source cryptographique est le bon choix par défaut.

Le paramètre de pas contrôle l'écart entre valeurs autorisées. Pas 1 sur 1-10 donne les entiers 1, 2, 3, ..., 10. Pas 0.5 sur la même plage donne 1, 1.5, 2, 2.5, ..., 10. Pas 2 sur 0-20 donne les nombres pairs. Mettre la longueur de la liste à plus de 1 fait passer du mode unique au mode lot et joint les sorties avec le séparateur choisi — pratique pour générer rapidement des données de test.

Questions fréquentes

Oui — il s'appuie sur crypto.getRandomValues, que la Web Crypto API du W3C définit comme cryptographiquement fort. En pratique le navigateur délègue au pool d'entropie du système d'exploitation (/dev/urandom sous Linux/macOS, BCryptGenRandom sous Windows), la même source qu'utilisent les bibliothèques TLS et les générateurs de clés SSH. Nuance : « adapté à la crypto » signifie que la source d'entropie est bonne ; la sécurité du cas d'usage dépend aussi de la façon dont vous gérez la sortie. Générer une clé de 256 bits ici puis la coller dans un chat public en annule l'intérêt sur-le-champ. Pour un usage local ponctuel (un mot de passe fort, un jeton de session dans votre propre app), la qualité d'aléa équivaut à celle d'une bibliothèque cryptographique professionnelle.

Pas depuis cet outil — crypto.getRandomValues est volontairement non-graine pour que les sorties ne puissent être rejouées. Si vous avez besoin d'aléa reproductible (simulation statistique, débogage, travail scientifique), utilisez un PRNG à graine. En JavaScript, installez mulberry32 ou un petit générateur à graine équivalent et passez-lui une graine fixe ; même graine, même séquence. Compromis : une séquence à graine est reproductible mais quiconque apprend la graine peut la rejouer — n'utilisez donc pas de PRNG à graine pour la sécurité.

Avec sûreté jusqu'à 2^53 - 1, soit environ 9 007 billiards (9 007 199 254 740 991). C'est Number.MAX_SAFE_INTEGER en JavaScript — la borne supérieure des entiers représentables exactement dans un flottant 64 bits sans arrondi. Au-delà, les entiers perdent en précision (l'écart entre deux nombres représentables dépasse 1). Pour la plupart des usages — dés, loterie, pourcentages, montants financiers — ce plafond est sans importance ; il ne compte que pour générer de très grands identifiants ou des nonces cryptographiques, cas où l'on utilise de toute façon un autre outil (basé sur BigInt ou sortant du hex).

Fixez min à 0, max à 1 et le pas à une petite fraction comme 0,01 ou 0,001 selon la précision voulue. Pas 0,01 donne deux décimales (0,00 à 1,00). Pas 0,001 en donne trois. Si vous voulez une sortie uniforme continue (n'importe quel réel dans [0, 1)), la primitive sous-jacente est Math.random — et pour ce cas précis, appeler Math.random() depuis la console est souvent plus rapide que de passer par l'outil. Pour des décimaux pondérés ou non uniformes (gaussiens, exponentiels), il faut un outil spécialisé — ce générateur est uniforme sur la plage demandée.

Oui — par défaut chaque nombre généré est indépendant, donc les doublons ne sont pas seulement possibles, ils sont probables. Avec plage 1-10 et liste de 10, on a presque toujours des répétitions et il manque des valeurs (c'est le « paradoxe des anniversaires » à l'œuvre). Si vous voulez un échantillon unique — par exemple tirer 10 nombres différents entre 1 et 100 — ce qu'il vous faut vraiment, c'est un tirage sans remise, que l'outil n'impose pas. Astuce : générez plus que nécessaire (30 nombres entre 1-100), puis dédupliquez et gardez les N premiers. Pour mélanger ou tirer sans répétition, un outil de shuffle ou de permutation est plus indiqué.

Math.random() est conçu pour la vitesse et la justesse statistique, pas pour l'imprévisibilité. Historiquement, différents navigateurs ont utilisé différents algorithmes — V8 (Chrome, Node) utilise xorshift128+, SpiderMonkey (Firefox) utilise xorshift ; tous rapides mais avec un petit état interne (~128 bits). Des chercheurs ont montré qu'observer quelques centaines de sorties consécutives suffit à reconstruire l'état interne et à prédire toutes les valeurs futures. Pour les jeux, les animations, mélanger un paquet de cartes en expérience hors-ligne solo, Math.random() suffit. Pour tout ce qui est multijoueur, proche du jeu d'argent, ou lié à la sécurité, crypto.getRandomValues est le bon choix — et c'est ce que ce générateur utilise.

Le générateur produit des valeurs de la forme min + k × pas, où k est un entier positif ou nul, plafonné à ≤ max. Donc la plage 1-10 avec pas 3 produit l'ensemble {1, 4, 7, 10}, pas des entiers arbitraires entre 1 et 10. Plage 0-1 avec pas 0,1 donne {0; 0,1; 0,2 ; ... ; 1,0}. Si le pas ne divise pas (max − min), la valeur la plus haute atteignable reste juste en-dessous du max — par exemple 0-10 pas 3 donne {0, 3, 6, 9} (le 10 n'est atteint que s'il est égal à min + k × pas pour un k). Utilisez pas 1 pour des lancers de dés en entiers ordinaires.

Non. La génération se passe entièrement côté navigateur — min, max, pas et les nombres résultants ne quittent jamais la page. Nous ne journalisons rien, n'envoyons rien à un service d'analytique, ne transmettons rien. La seule activité réseau de cette page est le chargement de ses propres ressources (HTML, CSS, JS). Ouvrez l'onglet Réseau du navigateur avant de cliquer sur Générer ; vous ne verrez aucune nouvelle requête. C'est pourquoi l'outil convient à un usage cryptographique — une clé générée ne fuite que si vous-même la copiez et la collez quelque part de non sécurisé.
Générateur de nombres aléatoires — Générateur de nombres aléatoires gratuit en ligne. Tirez un nombre entre n'importe quel min et max, un seul ou une liste
Générateur de nombres aléatoires