yo lo he hecho así:
1 coloco los números disponibles en un arreglo.
2 al azar obtengo un número entre 0 y el tamaño del arreglo.
3 saco ese numero del arreglo.
ejemplo:
Código PHP:
Ver originalfor($x=1;$x<=52;$++)
$arr[]=$x;//lleno el arreglo con numeros del 1 al 52
while($tam<count($arr)){//mientras el arreglo tenga numeros $z=rand(0,$tam);//obtengo un numero al azar entre 0 y el tamaño del arreglo $arr_des[]=$arr[$z];//coloco el numero en otro arreglo;
array_splice($arr,$z,1);//quito el numero del arreglo original. }