from typing import List
import random


def uniformly_split_num(
    sum: int,
    n: int,
) -> List[int]:
    """Generate `n` non-negative numbers that sum up to `sum`"""
    assert n > 0, 'n should be > 0'
    assert sum >= 0, 'sum should be >= 0'
    random_numbers = [random.randint(0, sum) for _ in range(n - 1)]
    values = [0] + sorted(random_numbers) + [sum]
    values.sort()
    intervals = [values[i + 1] - values[i] for i in range(len(values) - 1)]
    return intervals