Django don't have any inbuilt feature to do that kind of shuff. But you can implement that by your own.
To implement that, you need to save a random seed value corresponding to a user. I believe you have a user id associated with a user, you can use that as a seed value.
Now you have to use that seed value in Python's built-in random to generate a random shuffle.
Example:
import random
numbers = [10, 20, 30, 40, 50, 60]
print("Original list: ", numbers)
random.seed(4)
random.shuffle(numbers)
print("Shuffled list ", numbers)
# Output [40, 60, 50, 10, 30, 20]
random.seed(4)
random.shuffle(numbers)
print("Reshuffled list ", numbers)
# Output [40, 60, 50, 10, 30, 20]
random.seed(5)
random.shuffle(numbers)
print("Reshuffled list ", numbers)
# Output [60, 40, 10, 20, 30, 50]
Convert the same QuerySet into a list and pass it to random.shuffle(qs_list) and get the user id and pass it to random.seed(user_id).
Example:
import random
random.seed(user_id)
random.shuffle(qs_list)
# qs_list is shuffled according to user's id