shuffle array delphi

procedure ShuffleArray(var A: array of Integer);
var
  I, J, Temp: Integer;
begin
  for I := High(A) downto Low(A) do
  begin
    J := Random(I + 1);
    Temp := A[I];
    A[I] := A[J];
    A[J] := Temp;
  end;
end;