
import random

# What ?? 
def in_random_order(data):
    """
    generator that returns the elements of **data** in random order
    """

    indexes = [i for i, _ in enumerate(data)] # create a list of indexes
                                              # indexes = [0,1,2,...]

    random.shuffle(indexes) # shuffle them
                            # indexes = [4,2,1,9,... randomized]

    for i in indexes:       # return the data in that order
        yield data[i]       # returns data[4], then data[2]... etc


data = zip([1,2,3,4,5], [11,12,13,14,15])
data = list(data)
print(data)

for x_i, y_i in in_random_order(data):
    print(x_i, y_i)
