Générateur de nombres aléatoires
Options
Sortie
Détails techniques
Comment fonctionne le générateur de nombres aléatoires
Ce que fait l’outil
Le générateur de nombres aléatoires produit des entiers aléatoires ou des nombres à virgule flottante cryptographiquement robustes en utilisant l’API Web Crypto (crypto.getRandomValues). Il emploie l’échantillonnage par rejet pour éliminer le biais de modulo, garantissant une distribution uniforme sur toute plage spécifiée. Vous pouvez générer des valeurs uniques ou des lots de nombres aléatoires avec des paramètres configurables de minimum, maximum et précision.
Cas d’usage courants pour les développeurs
Les développeurs utilisent des générateurs de nombres aléatoires cryptographiques pour des tâches sensibles à la sécurité, comme la génération de jetons de session impossibles à deviner, de nonces, de tirages de loterie ou d’échantillonnage aléatoire de jeux de données. Les développeurs de jeux l’utilisent pour les lancers de dés et la génération procédurale lorsque l’équité compte. Les ingénieurs QA génèrent des entrées de test aléatoires pour le fuzzing, et les data scientists l’utilisent pour l’échantillonnage aléatoire lorsque la reproductibilité n’est pas requise.
Formats de données, types ou variantes
L’outil prend en charge la génération d’entiers dans une plage arbitraire (bornes inclusives) et la génération de nombres à virgule flottante avec une précision décimale configurable. L’échantillonnage par rejet écarte les valeurs qui provoqueraient un biais de modulo lorsque la plage ne divise pas uniformément l’espace de sortie de la source aléatoire. L’entropie sous-jacente provient du CSPRNG du système d’exploitation (CryptGenRandom sous Windows, /dev/urandom sous Unix) exposé via l’API Web Crypto du navigateur.
Pièges courants et cas limites
L’aléatoire cryptographique est plus lent que Math.random() et inutile pour des usages non liés à la sécurité, comme mélanger une playlist. L’échantillonnage par rejet peut théoriquement boucler de nombreuses fois pour des plages pathologiques, même si en pratique cela est négligeable. Les nombres aléatoires générés par le navigateur ne peuvent pas être initialisés avec une graine pour la reproductibilité — si vous avez besoin de séquences déterministes pour les tests, utilisez plutôt un PRNG à graine. La plage maximale d’entiers sûrs est limitée par Number.MAX_SAFE_INTEGER de JavaScript (2^53 - 1).
Quand utiliser cet outil plutôt que du code
Utilisez cet outil dans le navigateur lorsque vous avez besoin rapidement d’un nombre aléatoire non biaisé pour une décision ponctuelle, des tests manuels ou pour vérifier que votre propre implémentation produit des valeurs dans les plages attendues. Pour la production, appelez crypto.getRandomValues() directement dans votre code ou utilisez des fonctions CSPRNG natives du langage (module secrets en Python, SecureRandom en Java) qui s’intègrent à la gestion des erreurs et à la journalisation de votre application.