Да почему они будут дороже? Сравним сложность O(log(n)) сортировки в базе и O(1) прямых обращений по айдишнику. Я согласен, что условий задачи мало и адекватного решения тут нет с использованием рандомизатора из БД, так что обсуждаемо и то и другое
Давай считать твои запросы) первый - ты узнаешь максимальный id, второй - запрашиваешь объект по ид, дальше н раз повторяешь этот запрос пока не получишь валидный результат, плюс к этому генеришь случайное число, тратишь время на обработку исключений, где константа твоя?