ich möchte die Zahlen von 1-26 (jede einmal) in zufälliger reihenfolge in ein array speichern und habe dafür eine repeat until schleife geschrieben:
repeat
rnd:=random(25)+1;//zufallszahlerzeugen
if (pos(IntToStr(rnd),s)=0) // fügt zufallszahl dem array hinzu, falls diese zufallszahl bis jetzt noch nicht verwendet wurde
then begin
a[counter]:=rnd;
writeln(counter,': ',rnd);
s:=s+IntToStr(rnd)+' '; // zufallszahl in einem string abspeichern, damit sie nicht nochmal ins array geschrieben wird
counter:=counter+1; // wenn neue zufallszahl dem array hinzugefügt wurde, wird der zähler erhöht
end
until (counter=26);
allerdings schafft es die schleife nicht bis über 17-21 zufallszahlen. woran kann das liegen? oder dauert es nur unheimlich lange, bis die restlichen, noch nicht eingefügten zufallszahlen berechnet wurden?

Nein, random und randomize arbeiten in Delphi einwandfrei. Dein Programm würde prinzipiell seine Aufgabe erfüllen.
Dein Problem ist, dass du die ermittelten Zufallszahlen in einem String abspeicherst und diesen String auf das Vorhandensein einer Zahl absuchst.
Ich weiß nicht genau, welches Zeichen du zum Trennen benutzt ('), aber der Fehler liegt wohl einfach darin, dass mit jeder zweistelligen Zahl ja auch bis zu zwei einstellige Zahlen in deinem String gespeichert werden.
Nimm einmal an, random liefert dir die Zahl 25. Dann wird deine Suche über pos auch dann fündig, wenn du beim nächsten Mal eine 2 oder eine 5 erhältst, obwohl diese beiden Zahlen noch gar nicht im String enthalten sind.
Eine Lösung wäre es z.B., die Zahlen grundsätzlich 2stellig (mit evtl. führender Null) abzuspeichern und natürlich auch abzufragen.
Einfacher scheint es mir aber zu sein, wenn du statt eines Strings eine Menge (set) benutzt. Dann brauchst du auch keinen Trenner mehr.
Ich denke mal es wird daran liegen, dass die Randomizefunktion oft gleiche Zahlen liefert, d.h. wenn du 21 Zahlen schon hast, d.h. nur noch 5 überhaupt den Programmfluss beeinflussen, dann kann dies unter Umständen lange dauern, da die Randomizefunktion immer wieder schon vorhandene Zahlen ausspuckt.
Hoffe diese Erklärung hilft dir. Es liegt also mit großer Wahrscheinlichkeit an der Random-Funktion.

die randomize funktion von delphi is einfach nur fürn ar*ch.. aber nicht nur die. das is auch in anderen programmiersprachen assig gelöst
vielen dank für die antwort! ich glaube, ich suche lieber im string nach "<leerzeichen>zahl" statt nach "zahl"!