Des nombres aléatoires sont nécessaires dans certaines applications : loteries, jeux informatiques, cryptographie, sécurité des systèmes, simulation numérique, algorithmes randomisés, test de programmes et de circuits intégrés, etc. Pour cela, on utilise des générateurs de nombres aléatoires ou RNG (random number generators). Il existe deux principaux types de RNG : d'une part, les générateurs pseudo-aléatoires ou PRNG (Pseudo RNG) basés sur des algorithmes déterministes, et d'autre part, les générateurs de nombres vraiment aléatoires ou TRNG (True RNG) qui exploitent une source de bruit physique ayant des propriétés stochastiques.
Deux caractéristiques principales guident le choix d'un RNG : son débit et la qualité de l'aléa produit. Le débit doit être adapté à l'application cible, mais d'autres caractéristiques existent telles que le coût du générateur, son temps de démarrage et le caractère constant ou variable de son débit dans le temps.
La qualité d'un RNG est probablement sa caractéristique la plus importante, mais aussi la plus complexe à évaluer. La séquence aléatoire engendrée doit présenter une distribution de probabilité uniforme et équiprobable. De plus, chaque nouvel élément de la séquence doit être statistiquement indépendant et non-prédictible par rapport aux éléments précédents. Dans certaines applications, on requiert que la séquence soit non-reproductible, c'est-à-dire totalement différente après chaque redémarrage. Enfin, dans certaines applications sécurisées, rien ou personne ne doit pouvoir prédire ou biaiser les valeurs produites : c'est la résistance aux attaques.
Les PRNG peuvent être implantés en logiciel ou bien en matériel. Il existe des PRNG logiciels performants, c'est-à-dire avec un très haut débit et une bonne qualité d'aléa pour un coût limité, pour la plupart des types de processeurs. En matériel, de nombreux PRNG existent pour des ASIC (Application Specific Integrated Circuits) et des FPGA (Field Programmable Gate Arrays). On sait concevoir des PRNG avec d'excellentes caractéristiques d'uniformité, d'équiprobabilité, d'indépendance et de non-prédictibilité. Mais les PRNG sont déterministes, ils ne peuvent pas assurer la caractéristique de non-reproductibilité des séquences après chaque redémarrage. En pratique, il faut une source vraiment aléatoire pour les initialiser correctement.
Les TRNG nécessitent une implantation matérielle, comme un circuit intégré, pour la source de bruit physique. Cette source de bruit physique présente des propriétés de non-prédictibilité et non-reproductibilité du fait de certains phénomènes physiques stochastiques (par exemple, bruit thermique ou électro- magnétique, mécanique quantique, désintégration...