def find_missing_number(numbers: list) -> int:
    """
    A function that takes a shuffled list of unique numbers
    from 1 to n with one element missing (which can be any
    number including n). Return this missing number.

    :param numbers: a shuffled list of unique numbers
                    from 1 to n with one element missing
    :return: a missing number
    """
    # 1 - one is missing
    if 1 not in numbers:
        return 1
    # 2 - the range is ok, next number (the one comes after last one) is missing
    max_num = max(numbers)
    length = len(numbers)
    if length == max_num:
        return max_num + 1
    # 3 - some number inside the range is missing
    total = sum(numbers)
    return sum(range(1, max_num + 1)) - total