code: def random_weights(nobj: int, nweight: int) -> List[List[float]]:
      
  
      # 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)
docs: 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