Ähm...
Randomize; setzt die globale Variable
RandSeed auf die "Counts" (
QueryPerformanceCounter, ka was das genau für n Wert ist) seit Systemstart oder Millisekunden seit Systemstart (
GetTickCount), falls ersteres nicht verfügbar ist (false zurückgibt).
Random gibt dann "RandomEngine.Next" (weiter komme ich nicht in die Untiefen des
VCL-Codes) zurück. Also "die nächste zufallszahl". Für jeden Wert von Randseed hast du eine eindeutige kette von aufeinanderfolgenden Zufallswerten, diese werden über sehr komplizierte Algorithmen ausgerechnet, so dass es "wie Zufall aussieht".
negaH kann sich da differenzierter darüber auslassen (und er würde an der Delphi-Implenmentation kein gutes Haar lassen).
Somit
sollte Randseed VOR dem aufruf von Randomize auf einem bestimmten Wert stehen, und du
solltest somit immer die selben zufallszahlen erhalten.