At the time of this writing I have implemented a tile based home page. I populate a number of these tiles by pulling random blog posts. I was a little shocked when it occurred to me I have never had a reason to retrieve random data. I hashed out a few solutions in my head, but they seemed a little less than elegant; a quick search of the MySQL's documentation gave my the answer I was looking for.
RAND(), more specifically,
ORDER BY RAND(). In my case, I want six random blog posts so the query would look like this.
content_status = 'published'
content_type = 'posts'
ORDER BY RAND()
Since jasonsnider.com runs on top of CakePHP my final implementation is as follows. Note: if your using CakePHP but not MySQL, this may not work. Check the documentation of your DBMS for some alternative syntax.
$this->Post->find( 'all', array( 'fields'=>array( 'title', 'slug' ), 'conditions' => array( 'Post.content_status' => 'published' ), 'order' => 'rand()', 'limit' => 6, ) );