Es gibt im MG zwei Quellen von Pseudo-Zufallszahlen.

1) random()
  Diese efun liefert eine Zufallszahl aus dem Pseudo-Zufallszahlengenerator
  (PRNG) des Drivers. (s. Manpage).
  Wenn keine besonderen Gruenden vorliegen, sollte immer diese verwendet
  werden.


2) /std/util/rand-glfsr.c
  Falls jemand aus irgendeinem Grund eine Sequenz von Pseudo-Zufallszahlen
  braucht, die spaeter reproduzierbar sein soll (d.h. der Seed muss
  konfigurierbar sein), gibt es unter /std/util/rand-glfsr.c einen simplen,
  nicht allzu guten und sehr ineffizienten Pseudo-Zufallszahlengenerator.

Interface:
* public varargs void init(int seed, int newp)
  Setzt das Seed (und das Erzeugungspolynom, wenn gewuenscht, wovon ich
  aber abraten wuerde). Der Seed darf nicht 0 sein.
* public void InitWithUUID(string uuid)
  Berechnet einen Seed aus der uuid und initialisiert den PRNG damit (und dem
  Default-Polynom).
* public int nextbit()
  Liefert ein zufaelliges Bit (also 0 oder 1).
* public int nextbits(int count)
  Liefert <count> Bits (max 64) in einem int.
* public int random(int n)
  Liefert eine Zufallszahl zwischen 0 und n-1, in welcher 32 bits an 
  Pseudozufall stecken.
  Das Seed von der Blueprint wird vermutlich staendig veraendert (d.h.
  verlasst euch nicht drauf, dass es konstant bleibt), wollt ihr eine
  'private' Instanz mit eurem Seed, clont das Objekt (aber verliert den Clone
  nicht).

  Und um es nochmal zu sagen:
  Die IMHO einzige sinnvolle Anwendung ist, wenn man aus irgendeinem Grund
  das seed selber waehlen muss, damit man die Sequenz von Pseudozufall immer
  wieder reproduzieren kann.
  In allen anderen Faellen nehmt besser das random() vom Driver.

Der PRNG benutzt ein Linear Feedback Shift Register (in Galois-Variante). Die
Periodenlaenge des per Default benutzten Erzeugngspolynoms ist 2^32 - 1, d.h.
nach 4294967295 Bits wiederholt sich die Sequenz.
Das Default-Polynom ist:
x^32 + x^31 + x^28 + x^27 + x^24 + x^23 + x^20 + x^19 + x^16 + x^15 + x^12
     + x^11 + x^8 + x^7 + x^5 + x^3 + 1
(Zahlenwert: 0x1999999a8)

Wer ein anderes Polynom will, kann das per init() konfigurieren, sollte sich
aber schlau machen, welche sinnvoll nutzbar sind.


Ein paar statistische Daten eines Stroms von 40960 Bits:
Value Char Occurrences Fraction
  0            20474   0.499854
  1            20486   0.500146

Total:         40960   1.000000

Entropy = 1.000000 bits per bit.

Optimum compression would reduce the size
of this 40960 bit file by 0 percent.

Chi square distribution for 40960 samples is 0.00, and randomly
would exceed this value 95.27 percent of the times.

Arithmetic mean value of data bits is 0.5001 (0.5 = random).
Monte Carlo value for Pi is 3.109026964 (error 1.04 percent).
Serial correlation coefficient is -0.008399 (totally uncorrelated = 0.0).

