Pour autant que je sache, la plupart des implémentations de la génération de nombres pseudo-aléatoires utilisent des méthodes telles que les registres de rétroaction à décalage linéaire (LSFR), ou ces algorithmes "Mersenne Twister". Bien qu'ils passent de nombreux tests statistiques (heuristiques), il n'y a aucune garantie théorique qu'ils semblent pseudo-aléatoires pour, disons, tous les tests statistiques efficacement calculables. Pourtant, ces méthodes sont utilisées sans discernement dans toutes sortes d'applications, allant des protocoles cryptographiques au calcul scientifique en passant par la banque (probablement). Je trouve quelque peu inquiétant que nous ayons peu ou pas de garantie que ces applications fonctionnent comme prévu (car toute sorte d'analyse aurait probablement supposé un vrai caractère aléatoire en entrée).
D'un autre côté, la théorie de la complexité et la cryptographie fournissent une théorie très riche de la pseudo-aléatoire, et nous avons même des constructions candidates de générateurs de pseudo-aléatoire qui tromperaient TOUT test statistique efficace que vous pourriez trouver, en utilisant des fonctions unidirectionnelles candidates.
Ma question est: cette théorie a-t-elle fait son chemin dans la pratique? J'espère que pour des utilisations importantes de l'aléatoire, telles que la cryptographie ou le calcul scientifique, des PRG théoriquement solides sont utilisés.
En passant, je pourrais trouver une analyse limitée de la façon dont les algorithmes populaires tels que le tri rapide fonctionnent lorsque vous utilisez les LSFR comme source de hasard, et apparemment, ils fonctionnent bien. Voir les «algorithmes randomisés et nombres pseudo-aléatoires» de Karloff et Raghavan .