Also eine einfache Lösung, die mir als erstes eingefallen wäre, ist Folgendes:
Geh in einer Schleife Deine Karten von 1 bis 32 durch und weise ihnen einen zufälligen Index für das Array zu.
Delphi-Quellcode:
var KartenStapel:array[1..32] of byte;
index,karte:byte;
begin
randomize;
for index:=1 to 32 do KartenStapel[index]:=0; // sicherheitshalber initialisieren
for karte:=1 to 32 do begin
repeat
index:=random(32);
until KartenStapel[index]=0; // per Zufall leeren Platz finden
KartenStapel[index]:=karte // und da eine Karte ablegen
end
end;