Wybór losowego elementu z listy wszystkich obiektów bazy danych nie jest dobrym rozwiązaniem, ponieważ pobranie wszystkich elementów bazy danych może mieć duży wpływ na wydajność, podobnie jak użycie order_by('?')
jak wspomniano w dokumentacji django
.
Najlepszym rozwiązaniem powinno być pobranie elementu z losowym indeksem:
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]