os complicais demasiado. ya hay funciones que desordenan cadenas de caracteres.
he creado esta sencilla función que genera una cadena con numeros, letras mayusculas y minusculas.
Código PHP:
function text_rand(){
$listacaracteres="abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$desordenada= str_shuffle($listacaracteres);
$hjk=rand(0,50);
$capada = substr($desordenada,$hjk,10);
return $capada;
}