delphi随机函数用法,该如何处理

delphi随机函数用法
每次随机生成1个0-100以内的整数,共生成10个数,且10个数都不重复。(初学者求指教)
delphi

------解决方案--------------------
修正一下

var
  Nums: array[0..9] of Byte;
  I, Idx: Integer;
label
  L1;
begin
  Randomize;
  Idx := Low(Nums);
  FillMemory(@Nums, Length(Nums), $FF);
L1:
  Nums[Idx] := Random(101);
  for I := Low(Nums) to High(Nums) do
  begin
    if I = Idx then
      Continue;

    if Nums[I] = Nums[Idx] then
      goto L1;
  end;

  if Idx < High(Nums) then
  begin
    Inc(Idx);
    goto L1;
  end;
end;

------解决方案--------------------
//CreateRandom(随机数取值范围起始值, 终止值; 返回数组长度)
function TForm11.CreateRandom(const RangeStart, RangeEnd, ResultCount : integer) : Tarray<Integer>;
var
  tmpLst : TStringList; //可以使用泛型列表或数组代替
  I, n: Integer;
begin
  if RangeStart >= RangeEnd then
    raise Exception.Create('错误的随机数范围!');

  if ResultCount < 1 then
    raise Exception.Create('随机数返回数组长度必须大于0!');

  tmpLst := TStringList.Create;
  tmpLst.Capacity := RangeEnd - RangeStart;
  try
    for n := RangeStart to RangeEnd do
    begin
      tmpLst.Add(IntToStr(n));
    end;

    Randomize;

    SetLength(Result, ResultCount);
    for I := 0 to ResultCount do
    begin
      n := Random(tmpLst.Count - 1);
      Result[i] := StrToInt(tmpLst.Strings[n]);
      tmpLst.Delete(n);
    end;
  finally
    tmpLst.free;
  end;
end;

procedure TForm11.btn1Click(Sender: TObject);
var
  MyArr : Tarray<Integer>;
  I : Integer;
  s : string;
begin
  s := '';
  MyArr := CreateRandom(0, 100, 10);
  for I := Low(MyArr) to High(MyArr) do
    s := s + inttostr(Myarr[i]) + ' ';

  ShowMessage(s);

  s := '';
  MyArr := CreateRandom(100, 1000, 15);
  for I := Low(MyArr) to High(MyArr) do
    s := s + inttostr(Myarr[i]) + ' ';

  ShowMessage(s);
end;