def orderedSampleWithoutReplacement(seq, k):
    if not 0 <= k <= len(seq):
        raise ValueError('Required that 0 <= sample_size <= population_size')
numbersPicked = 0
for i, number in enumerate(seq):
    prob = (k - numbersPicked) / (len(seq) - i)
if random.random() < prob:
    yield number
numbersPicked += 1
Получить случайную выборку из списка, сохраняя порядок элементов?