ContentProviderを使ってランダムに一件だけデータ取得したい機会があったのでメモ。
Stack Overflow先生によると、こんな感じでSELECT文書けば良いとのことです。
http://stackoverflow.com/questions/1253561/sqlite-order-by-rand
SELECT * FROM table ORDER BY RANDOM() LIMIT 1;
RANDOM()はSQLiteの関数です。
http://www.sqlite.org/lang_corefunc.html
ContentProviderの場合はsortOrderのところに書いちゃえばOK。
Cursor c = context.getContentResolver().query(
Hoge.CONTENT_URI,
new String[]{Hoge._ID},
null,
null,
"RANDOM() LIMIT 1");
おしまい。