Код:
function Unique(var flag: array of boolean; range: integer): integer;
begin
result := random(range);
while flag[result] do
result := random(range);
flag[result] := true;
end;
procedure Mass_of_Random(range: integer; var RND_Mass: array of integer);
var
i: integer;
bm: array of boolean;
begin
SetLength(bm, length(RND_Mass));
for i := 0 to length(RND_Mass) - 1 do
begin
RND_Mass[i] := Unique(bm, range);
end;
Так можно сгенерить массив из уникальных рандомных чисел, ну а дальше понятно.