my_queryset.order_by('?')
Python List:
import random random.shuffle(my_list)
And then you can use slice to just keep n elements, e.g.
n = 5
my_queryset.order_by('?')[:n]
my_queryset.order_by('?')
import random random.shuffle(my_list)
n = 5
my_queryset.order_by('?')[:n]
no copy: before: [1, 1, 1, 1] in change(): [2, 1, 1, 1] after: [2, 1, 1, 1] with copy: before: [1, 1, 1, 1] in change(): [2, 1, 1, 1] after: [1, 1, 1, 1]