Aller au contenu principal

Générateur de nombres aléatoires — outil gratuit

Générez des nombres aléatoires dans n'importe quelle plage, créez des listes de nombres uniques ou lancez des dés. Utilise un générateur aléatoire cryptographiquement sécurisé.

Fonctionne hors ligne une fois chargé

🔒 Chaque nombre utilise l'aléatoire cryptographique de votre navigateur (crypto.getRandomValues) — véritablement équitable, pas le Math.random() prévisible. Rien n'est envoyé nulle part. Cela dit, n'utilisez pas ces nombres pour la génération de clés cryptographiques, les jetons de sécurité ou les applications de loterie/jeu réglementées, qui nécessitent des sources d'aléatoire certifiées matériellement.

Besoin de désigner un gagnant par son nom dans une liste, ou de jouer à pile ou face ? Utilisez l’outil Pile ou face, roue et tirage dans une liste →

Utilisations courantes

  • Générer des numéros de loterieChoisissez des numéros de loterie aléatoires pour Powerball, Mega Millions, EuroMillions et autres tirages.
  • Choisir un gagnant aléatoire pour les giveawaysSélectionnez équitablement un gagnant aléatoire dans une liste de participation numérotée pour les concours et les giveaways.
  • Lancer les dés pour les jeux de tableLancez n'importe quelle combinaison de dés — d4, d6, d8, d10, d12, d20, d100 — pour D&D et les jeux de rôle sur table.
  • Échantillonnage aléatoire pour la rechercheGénérez des échantillons aléatoires, attribuez des ID aléatoires ou sélectionnez un sous-ensemble aléatoire d'un ensemble de données numéroté.
  • Générer des nombres aléatoires pour les données de testCréez de grandes listes de nombres aléatoires pour tester les algorithmes, remplir les bases de données et effectuer des tests de charge du système.

Comment ça marche

Chaque nombre que cet outil génère provient de crypto.getRandomValues — la source aléatoire cryptographiquement sûre du navigateur, la même utilisée pour la génération de clés TLS. Un algorithme d'échantillonnage par rejet écrit à la main se superpose pour éliminer le biais de modulo qui affecte les implémentations simples de Math.random() % plage, y compris les plages plus larges que 2^32 via l'arithmétique BigInt.

  1. 1
    Définissez votre plage et votre mode
    Choisissez entre un nombre unique, une liste par lot (jusqu'à 1000), ou des dés polyédriques (d4 à d100). Pour les listes, vous pouvez aussi exiger des valeurs uniques et optionnellement trier le résultat par ordre croissant.
  2. 2
    crypto.getRandomValues tire de l'entropie brute
    Chaque nombre est tiré d'un Uint32Array (ou BigUint64Array pour les plages plus larges que 2^32) rempli par le générateur de nombres aléatoires cryptographique du navigateur — pas Math.random(). L'échantillonnage par rejet écarte ensuite les valeurs qui fausseraient la distribution, chaque entier de votre plage a donc une probabilité exactement égale.
  3. 3
    Le mode valeur unique utilise Fisher-Yates ou le suivi par rejet
    Quand le mode unique est activé et que la plage tient en mémoire (jusqu'à 100 000 valeurs), l'outil matérialise le pool complet et le mélange avec Fisher-Yates. Pour de très grandes plages, il tire plutôt les valeurs une par une, en sautant les répétitions — évitant le coût mémoire de construire un tableau de milliards d'entrées.
  4. 4
    Les résultats apparaissent avec une animation et restent dans l'historique de session
    Les valeurs finales s'animent en place (un défilement de machine à sous pour les nombres, des dés qui roulent pour le mode dés) avec requestAnimationFrame, puis apparaissent dans un journal d'historique défilant que vous pouvez copier à tout moment. Rien ne quitte votre navigateur.

Outils associés

Questions fréquemment posées