Otra forma de hacerlo es generar los números primero, ordenados, y después desordenarnos con random mezclando los índices.
Código Delphi
[-]
var Numeros: array of Integer;
Ind1, Ind2, Cuenta: Integer;
Aux: Integer;
begin
SetLength(Numeros, 101);
for Cuenta:= 0 to 100 do Numeros[Cuenta]:= Cuenta;
Randomize;
for Cuenta:= 0 to 101 * 3 do
begin
Ind1:= Random(101);
Ind2:= Random(101);
Aux:= Numeros[Ind1];
Numeros[Ind1]:= Numeros[Ind2];
Numeros[Ind2]:= Aux;
end;
end;
Queda desprolijo, pero... No hay mucho que hacerle. El problema de le veo a lo te dijo Caro y delphi.com.ar es que el último número o los últimos van a tener muchos iteraciones antes de que salga justo el que uno no tiene... Está bien, mi idea también tiene un ciclo del triple del tamaño del arreglo, así que...
Qué sé yo.
Saludongos.