1. MySQL provides SELECT * FROM some_table ORDER BY RAND() - dunno how portable that is. You could do SELECT * FROM some_table ORDER BY RAND() LIMIT 50 to get a limited number.

2. Psudeo-random functions are a well-studed phenomenon. Mathematically they are at once very simple and quite complex. Fortunately, the complexity revolves choosing a few constants and thus pseudo-random functions can be made very very fast.

If ORDER BY RAND() doesn't work, then your Googled ideas will be your best bet.

Wade.