Muchas gracias por tu ayuda amigo, logre encontrar la solucion,.. imprimiendo los valores que toma aleatoreamente durante el for anidado, resulta que estaba comparando mal en el for anidado,..
($rand[$n]==$rands)
Comparaba TODOS los indices (hasta el ultimo que es el que debe ser diferente) lo solucioné tomando un comparador logico
($n<count($rand)-1 && $rand[$n]==$rands)
Para que solo comparara si el indice no es el ultimo hasta el momento,..
Entonces claro cuando ejecute el script salia una larga fila de numeros aleatoros pues gracias al segundo for el primero nunca terminaba, claro.. bueno son gajes del oficio
Muchas gracias Vun, se te agradece!!