Дмитрий
Можно сделать что-то вроде
q = User.objects.all()
user = q[randrange(q.count())]
чтобы оперативку не нагружать
выше предлагали этот вариант, возможно он не так плох, тут уже нужно замерять и сравнивать на практике, но не думаю что разница будет в разы, тот же count(*) не считают быстрым, опять же возможно User.objects.only('id').order_by('?') - возможность для оптимизации