Я бы не заказывал по random()
, потому что это не может контролироваться должным образом.
Если вам нужен надежный, но, казалось бы, случайный порядок, вы можете использовать хеш-функцию:
SELECT * FROM atable ORDER BY hashint4(id);
Это будет стабильно в течение DELETE
с, потому что значения хеш-функции не меняются.
Если вам нужны разные «случайные» порядки, сгенерируйте случайное целое число повторяющимся образом и используйте
... ORDER BY hashint4(id + 42)