Moin!
Ehrlichgesagt würde ich dir einen anderen Ansatz nahe legen wollen:
- Mach eine Stringliste auf, in die du die Namen der Teams/Spieler packst.
- Erzeuge alle relevanten (2 aus X)-Tupel (2er-Permutationen) und lege sie z.B. einer TList als Pointer ab (oberes Wort 1. Teamindex, unteres Wort 2.; 65536 Teams sollten reichen...

) Geht gut und einfach mit zwei geschachtelten Schleifen
- Die Liste mischt du jetzt solange, bis es dir "passt" (Ansatz: Schleife von 0 bis Count-1 und im Körper eine Zufallszahl von 0 bis Count-1, dahin den Aktuellen per .Move verschieben, dann ist die Liste "durchgeschüttelt")
- Zur Ausgabe gehst du die Liste durch und leitest die Indices wieder aus dem Pointer ab (Worte aufspalten), dann kannste die als Index in die Namens-Stringliste nehmen und die Paare in z.B. ein Memo reinschreiben.
Dieser Ansatz hätte eine deterministische Richtung und enthält nicht diese "unseelige" Zufallsschleifenkonstruktion, die "bis es passt" läuft...
cu
Narses