メルセンヌ・ツイスターと似て非なるアルゴリズムが実装されていたことが発覚して話題の PHP の mt_rand 関数の品質を統計的に検証しました．果たして，PHP の「壊れた」mt_rand は安心して使うことができるのでしょうか……？

ちなみに，結論から言うと，PHP の壊れた mt_rand は，（少なくともこのテストの範囲では）本家メルセンヌ・ツイスターと遜色ない品質を持っているようです．ただし，最後に PHP の乱数の別の懸念点についても紹介します．





なぜ擬似乱数の品質は重要なのか？ 擬似乱数が「ちゃんと乱数に近い」ことは，統計的な実験やシミュレーション，確率的アルゴリズム，暗号，ゲーム等に欠かすことのできない要因です． 例えば最近だと，「グラブル問題」などソシャゲのガチャの確率の話をよく聞きます．意図的にガチャの確率を弄っている場合まだ良い（……良くはないですが少なくとも運営の意図通りではあるしすぐ直せる）として，擬似乱数の性質が要因でバグとして確率の偏りが起こってしまうと，とても悲惨だと思います．



