code: def rmultivariate_hypergeometric(n, m, size=None):
      
  
      N = len(m)
      urn = np.repeat(np.arange(N), m)
  
      if size:
          draw = np.array([[urn[i] for i in np.random.permutation(len(urn))[:n]]
                           for j in range(size)])
  
          r = [[np.sum(draw[j] == i) for i in range(len(m))]
               for j in range(size)]
      else:
          draw = np.array([urn[i] for i in np.random.permutation(len(urn))[:n]])
  
          r = [np.sum(draw == i) for i in range(len(m))]
      return np.asarray(r)
docs: Random multivariate hypergeometric variates.
  
      Parameters:
        - `n` : Number of draws.
        - `m` : Number of items in each categoy.