En un juego de cartas yo usaba este metodo para barajar. A lo mejor te sirve:
Código Delphi
[-]
var
Baraja: array[1..40] of Integer;
i,j,k: Integer;
begin
for i:= 1 to 40 do
begin
Baraja[i]:= i;
end;
Randomize;
for i:= 1 to 40 do
begin
j:= Random(40)+1;
k:= Baraja[i];
Baraja[i]:= Baraja[j];
Baraja[j]:= k;
end;
end;