Contributor: ANDY MCFARLAND 
{ ANDY MCFARLAND }
Var
 pick : Array [1..52] of Byte;
 i, n,
 temp : Word;
begin
 { start With an ordered deck }
 For i := 1 to 52 do
 pick[i] := i ;
 For i:= 52 downto 2 do
 begin { [i+1..52] has been shuffled }
 { pick any card in the unshuffled part of the deck }
 n := random(i) + 1 ; { N in [1..i] }
 temp := pick[n] ; { exchange pick[i] pick[n] }
 pick[n] := pick[i] ;
 pick[i] := temp ;
 end ;
end;
 

AltStyle によって変換されたページ (->オリジナル) /