Если у вас есть управляемое количество записей в базе данных (т. Е. Не тысячи), это будет работать, и даже если оно дважды попадет в базу данных, это, вероятно, будет гораздо более эффективным, чем order_by('?')
.
import random
content_pks = Content.objects.values_list('pk', flat=True)
selected_pks = random.sample(content_pks, 30)
content_objects = Content.objects.filter(pk__in=selected_pks)