def random_weights(nobj: int, nweight: int) -> List[List[float]]:
    """ Generatate nw random weight vectors for nof objectives as per Tchebycheff method [SteCho83]_

    .. [SteCho83] Steuer, R. E. & Choo, E.-U. An interactive weighted Tchebycheff procedure for multiple objective programming, Mathematical programming, Springer, 1983, 26, 326-344

    Parameters
    ----------
    nobj:
        Number of objective functions

    nweight:
        Number of weights vectors to be generated

    Returns
    -------
    List[List[float]
        nobj x nweight matrix of weight vectors


    """

    # Initial wector space as per
    # Miettinen, K. Nonlinear Multiobjective Optimization
    # Kluwer Academic Publishers, 1999
    wspace = 50 * nobj
    while wspace < nweight:
        wspace *= 2

    weights = np.random.rand(wspace, nobj)
    return _centroids(nobj, weights)