while iters:
    it = random.choice(iters)
try:
    yield next(it)
except StopIteration:
    iters.remove(it)
print(list(interleave(range(1, 5), range(5, 10), range(10, 15))))
Случайное чередование нескольких итераций при сохранении их порядка в python