Saludos, existen diversas formas.
p ej.
Código PHP:
md5(uniqid(rand(), true));
Código PHP:
time() . substr(md5(microtime()), 0, rand(5, 12));
Aunque, uniqid es considerado un función que afecta el rendmiento, por su lentitud.
De hecho tales ejemplo viene en la página, http :// www.php.net/uniqid
Lo interesantes de allí es que presentan varías opciones para lo que deseas, sería bueno que le hecharás un ojo.