title: Randomize function repetative / predicable
body: <p>I have this procedure that runs on FormActivate, it utilizes the randomize procedure, but is giving repetitive results. I use the variable OutText to show the results, and they return extremely repetative / predictable numbers (eg. 444555666  !  444555666).</p>
  
  <pre><code>procedure TMainWin.FormActivate(Sender: TObject);
    var
      i, i2, TileValue : integer;
      OutText : String;
  begin
  
    MainWin.Width := SCALE * WIDTH;
    MainWin.Height := SCALE * HEIGHT;
  
    OutText := '';
  
    for i := 1 to 5 do begin
  
      Randomize;
      TileValue := Random(20) + 1;
      arTilesFinal[i, TileValue] := 1;
  
      for i2 := 1 to 2 do begin
        While arTilesFinal[i, TileValue] &gt; 0 do begin
          Randomize;
          TileValue := Random(20) + 1;
        end;
        arTilesFinal[i, TileValue] := 2;
      end;
  
      for i2 := 1 to 2 do begin;
        While arTilesFinal[i, TileValue] &gt; 0 do begin
          Randomize;
          TileValue := Random(20) + 1;
        end;
        arTilesFinal[i, TileValue] := 3;
      end;
  
      for i2 := 1 to 5 do begin;
        While arTilesFinal[i, TileValue] &gt; 0 do begin
          Randomize;
          TileValue := Random(20) + 1;
        end;
        arTilesFinal[i, TileValue] := 4;
      end;
  
      for i2 := 1 to 5 do begin;
        While arTilesFinal[i, TileValue] &gt; 0 do begin
          Randomize;
          TileValue := Random(20) + 1;
        end;
        arTilesFinal[i, TileValue] := 5;
      end;
  
      for i2 := 1 to 5 do begin;
        While arTilesFinal[i, TileValue] &gt; 0 do begin
          Randomize;
          TileValue := Random(20) + 1;
        end;
        arTilesFinal[i, TileValue] := 6;
      end;
    end;
  
    for i := 1 to 5 do begin
      for i2 := 1 to 20 do begin
        OutText := OutText + IntToStr(arTilesFinal[i,i2]) + ',';
      end;
      OutText := OutText + '  !  ';
    end;
  
    ShowMessage(OutText);
    //AddImages;
  end;
  </code></pre>
  
  <p>aTiles and aTilesFinal are defined as follows</p>
  
  <pre><code>type
    aTiles = array[1..20] of integer;
    aTilesFinal = array[1..5] of aTiles;
  
  var
    arTilesFinal : aTilesFinal;
  </code></pre>