Esta foi uma função escrita por um amigo meu para o CMS em que trabalhamos.
Espero que possa ser útil para alguém.
/**
* Generates a random code
*
* @version 2.0
* @since 0.6.0
*
* @param int $maxLength
*
* @return string
*/
function randCode($maxLength=6){
$password = NULL;
$possible = 'bcdfghjkmnrstvwxyz123456789';
$i = 0;
while(($i < $maxLength) && (strlen($possible) > 0)){ $i++;
$character = substr($possible, mt_rand(0, strlen($possible)-1), 1);
$password .= $character;
}
return $password;
}