Код:
	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; 
 
Так можно сгенерить массив из уникальных рандомных чисел, ну а дальше понятно.