A melhor maneira que encontrei para selecionar qualquer número de registros aleatórios é com OFFSET na consulta.
Digamos que você queira 6 registros aleatórios, então vou pegar emprestado de uma resposta acima e contar o número total de amigos no banco de dados.
$sql = mysql_query("SELECT COUNT(*) AS total FROM friends WHERE member_id='". $_SESSION['userid'] ."'");
$get_count = mysql_fetch_array($sql); // Fetch the results
$numfriends = $get_count['total']; // We've gotten the total number
Agora vamos obter os 6 registros aleatórios do total acima (espero que seja> 6),
$query = mysql_query("SELECT * FROM friends WHERE member_id='". $_SESSION['userid'] ."' LIMIT 6 OFFSET " . (rand(0, $numFriends));
while ($rows = mysql_fetch_array($query))
{
/// show your $rows here
}
Usar o OFFSET pode não ser o melhor ou mais eficiente, mas funcionou para mim em grandes bancos de dados sem atolar.