import random


def shift_value_generator(discrete_shift_values, shift_values_distribution):
    """Generate values for a shift such as day or night shift.

    Parameters
    ----------
    discrete_shift_values : list
        The values that can be taken on during the shift.
    shift_values_distribution : list
        The probability distribution of the discrete shift values.

    Returns
    -------
    shift_values : list
        The list of random values for the custom-defined shift.

    """
    # Create an empty list to store the generated values
    shift_values = []

    # The choices() method returns a list with the randomly selected element
    # from the specified sequence. You can weigh the possibility of each
    # result with the weights parameter. k is the size of list generated.
    shift_values = (random.choices(discrete_shift_values,
                                   weights = (shift_values_distribution),
                                   k = 4464))

    return shift_values