Если вам нужен псевдослучайный порядок, вы можете сделать что-то вроде этого (PHP):
$seed = md5(mt_rand());
$prng = ('0.' . str_replace(array('0', 'a', 'b', 'c', 'd', 'e', 'f'), array('7', '3', '1', '5', '9', '8', '4'), $seed )) * 1;
$query = 'SELECT id, name FROM table ORDER BY (substr(id * ' . $prng . ', length(id) + 2)';
Кроме того, вы можете установить $ seed на предопределенное значение и всегда получать одинаковые результаты.
Я научился этому трюку от моего коллеги http://steamcooker.blogspot.com/