Okay, jetzt verstehe ich, was du meinst. XOR liefert ein falsches Ergebnis. (@dax)
Bei random(2) ist es aber trotzdem egal, weil eh nur 0 oder 1 herauskommen kann, und ich denke nicht, dass der Wert von True einafch so in der nächsten Delphiversion geändert wird. Wenn man natürlich auf 100%ige Kompatiblität wert legt, ist die
IF SCHLEIFE wohl die bessere wahl.
Btw: mir fällt grad noch was ein:
x := boolean(random(2)*ord(True));
Ist allerdings schon ziemlich entwartet, aber ob das wirklich sinnvoll bzw. schneller ist, ist wohl fraglich. (Bei True=1 wird der Compiler die Multiplikation ja hoffentlich eh rausoptimieren).
edit: aber ist schon gut, ihr habt gewonnen