Schau dir am besten mal die Hilfe zu Random an dann sollte dir auch klar werden warum du so kleine Zahlen bekommst.
Zitat:
function Random(const ARange: Integer): Integer;
[...]
0 <= X < 1
Aber das ganze macht auch irgendwie keinen Sinn. Wenn du bereits mit RandomRange zahlen aus dem gewünschten Bereich erzeugst, warum übergibst du dann dieses Ergebnis erst noch an Random?
Das Zahlen doppelt vorkommen liegt daran das du nicht überprüfst ob die erzeugte Zahl bereits in deinem Array ist.
Zitat:
Ich habe möchte RandomRange Zahlen aus dem Bereich 100-200 generieren.
Warum rufst du dann Random Range mit Zahlen größer 201 auf? Wenn du Zahlen zwischen 100 und 200 generieren willst sollte der Aufruf von RandomRange so aussehen:
Ergebnis := RandomRange(100,201);