 <p>The most efficient way probably is to create a completely random array order and cache that for every user.</p> <p>Except for the MySQL sollution postet above, you may use php in a very similar style: You can use the session id as a start for the random number generator and than shuffle the array using that "random" number. By doing that, every user recieves a differently sorted list, whenever he requests your site (at least as long as the session does not expire).</p> <pre><code>&lt;?php $array = array("Cat", "Dog", "Mouse"); session_start(); $session_id_int = (int)session_id(); srand($session_id_int); echo '&lt;pre&gt;BEFORE:'.PHP_EOL; print_r($array); shuffle($array); echo 'AFTER:'.PHP_EOL; print_r($array); </code></pre>