決定論的な計算機プログラムは真の乱数を発生できません。 しかし、ほとんどの目的には疑似乱数(pseudo-random numbers)で十分です。 一連の疑似乱数を決定論的な方法で生成します。 それらの数は真の乱数ではありませんが、 乱数列のある種の性質に似た性質があります。 たとえば、疑似乱数列でもすべての可能な数がしばしば等しく生起します。
Emacsでは、疑似乱数は『種』となる数から生成します。
指定した任意の種から始めても、関数random
は同じ数の列を生成します。
Emacsはつねに同じ種の値で計算し始めるため、
それぞれのEmacsの実行でもrandom
は実際には同じ数の列を生成します。
たとえば、あるオペレーティングシステムで、
Emacs開始直後にrandom
を呼ぶとつねに-1457731を返し、
つぎに呼ぶとつねに-7692030を返します。
このような再現性はデバッグには有利です。
予測不可能な乱数が必要ならば(random t)
を実行します。
これは、現在時刻とEmacsプロセスのid番号に基づいて、
新たな種の値を選びます。