Se cerchi su php.net ne trovi tante di funzioni che fanno questo lavoro.
Questa invece è una funzione scritta da andr3a.
Codice PHP:
<?php
function randomString($tot$tp=0) {
    
// andr3a
    
srand((double)microtime()*1234567);
    
$a = Array();
    for(
$i=0;$i<26;$i++) {
        
$a[$i] = chr($i+97);
    }
    if(
$tp!=0) {
        
array_push($a,"1","2","3","4","5","6","7","8","9","0");
    }
    
$d count($a)-1;
    
$st "";
    for(
$i=0$i<$tot$i++) {
        
$n rand(0,$d);
        
$st .= rand(0,1) == $a[$n] : strtoupper($a[$n]);
    }
    return 
$st;
    
}

echo 
randomString(20,1); // 1 alfanumeriche, 0 solo alfa
?>