Aller au contenu principal
PulsarKit

Générateur de nombres et de chaînes aléatoires

Générez des nombres aléatoires dans une plage sans doublons, ou des chaînes aléatoires à partir de lettres, chiffres et symboles, grâce à crypto.getRandomValues.

Comment générer des nombres et des chaînes aléatoires

  1. 1

    Choisissez nombres ou chaîne

    Basculez entre une plage de nombres, entiers ou décimaux, et une chaîne aléatoire construite à partir des types de caractères que vous choisissez.

  2. 2

    Réglez la plage ou l’alphabet

    Pour les nombres, définissez le minimum, le maximum et la présence ou non de doublons. Pour les chaînes, activez ou désactivez les types de caractères, ou collez votre propre alphabet personnalisé.

  3. 3

    Générez et copiez le résultat

    Jusqu’à 10 000 valeurs apparaissent en une fois, une par ligne, prêtes à être copiées directement dans le presse-papiers.

Pourquoi crypto.getRandomValues plutôt que Math.random

Math.random en JavaScript est rapide, mais n’a jamais été conçu pour résister à la prédiction. Quelques sorties de certains moteurs suffisent à reconstituer son état interne et à prévoir toutes les valeurs suivantes. crypto.getRandomValues puise à la place dans le générateur de nombres aléatoires cryptographiquement sûr du système d’exploitation, la même source que les navigateurs utilisent pour créer des clés de chiffrement, de sorte que rien dans la suite ne peut être deviné en l’observant. Cet outil utilise cette source partout, y compris pour mélanger une liste lorsque les doublons sont désactivés.

Le biais du modulo et comment l’échantillonnage par rejet l’élimine

La façon naïve de transformer un nombre aléatoire 32 bits en « une valeur de 1 à 100 » est de prendre ce nombre modulo 100, mais cela favorise discrètement le bas de la plage : 2^32 n’est pas divisible exactement par 100, donc les valeurs restantes qui ne rentrent pas dans un multiple entier se rabattent toutes sur la même poignée de résultats. Cet outil, au contraire, rejette tout tirage qui tombe dans ce reste inégal et recommence. C’est ce que l’on appelle l’échantillonnage par rejet. Chaque nombre dans la plage demandée a ainsi exactement la même probabilité d’apparaître.

Chaque valeur est générée dans cet onglet

Les nombres et les chaînes sont produits entièrement dans votre navigateur à l’aide de l’API Web Crypto. Rien de ce que vous générez n’est envoyé à un serveur ni écrit dans le stockage du navigateur, et le lien partageable encode uniquement vos réglages, jamais les valeurs réelles, car un lien prévisible irait à l’encontre du principe même d’un tirage aléatoire.

Questions fréquentes

Pourquoi crypto.getRandomValues est-il préférable à Math.random ?

Math.random est optimisé pour la vitesse, pas pour l’imprévisibilité, et l’on a montré que sa sortie pouvait être reconstruite à partir d’un petit échantillon de résultats dans plusieurs moteurs JavaScript. crypto.getRandomValues puise dans le générateur de nombres aléatoires cryptographiquement sûr du système d’exploitation, qui ne présente pas de raccourci de ce type.

Comment fonctionne l’option « sans doublons » pour de grandes plages ?

Pour des plages allant jusqu’à cinq millions de valeurs possibles, cet outil mélange la liste complète avec un mélange de Fisher-Yates et en prend autant que demandé. Au-delà, il tire les valeurs une par une et ne conserve que les nouvelles, ce qui reste rapide, car les collisions sont rares lorsque vous demandez bien moins de valeurs que la plage n’en contient.

Qu’est-ce que le biais du modulo et pourquoi ne pas faire juste un intervalle avec % ?

Réduire un nombre aléatoire 32 bits par une simple opération de reste rend le bas de votre plage très légèrement plus probable, car 2^32 n’est pas un multiple exact de la plupart des tailles de plage. Cet outil rejette et retire la petite tranche de valeurs qui provoquerait cette distorsion, afin que chaque résultat possible dans votre plage soit également probable.

Puis-je utiliser le résultat comme mot de passe ?

Une chaîne aléatoire générée ici avec un grand alphabet et une longueur suffisante est aussi robuste qu’un mot de passe issu d’un générateur dédié. Si vous cherchez précisément des valeurs d’entropie, un score de robustesse ou une phrase de passe, le générateur de mots de passe est conçu pour cela à la place.

Combien de nombres ou de chaînes puis-je générer en une fois ?

Jusqu’à 10 000 en un seul lot, que vous génériez des nombres ou des chaînes. Cela couvre largement les tirages au sort, les données de test et les cas d’échantillonnage, sans devoir relancer l’outil plusieurs fois.

Les valeurs générées quittent-elles un jour mon navigateur ?

Non. Chaque nombre et chaque caractère est produit localement à l’aide de l’API Web Crypto, et rien n’est envoyé nulle part. La copie vers le presse-papiers est la seule manière dont une valeur quitte la page, et cela reste entièrement sous votre contrôle.

Pourquoi le lien partageable n’inclut-il pas les nombres eux-mêmes ?

Le lien ne sert qu’à reproduire vos réglages (la plage, le nombre de valeurs, la présence ou non de doublons), jamais les valeurs elles-mêmes. Un lien capable de rejouer à la demande les mêmes nombres « aléatoires » les rendrait prévisibles, ce qui va à l’encontre de l’objectif de cette génération.

Outils associés