Selecting random rows from database initially while preserving that order later
You'll want to hold an actual random number for each user then you can call

rand($usersrandomnumber) 


to generate your static random generator start point

the $usersrandomnumber acts as a starting seed

see the mysql documentation here:
https://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand

it will involve you storing the user's seed in a table somewhere, or cookie /local/server storage but will get you what you're after