import random


def randomPartition(elems: list, bin_sizes: list) -> list:
    """
    Randomly partition list elements into
    bins of given sizes
    """
    def shuffleList(elems):
        random.shuffle(elems)
        return elems

    elems = shuffleList(elems)
    partition = []
    start, end = 0, 0
    for bin_size in bin_sizes:
        end += bin_size
        partition.append(elems[start:end])
        start += bin_size
    return partition