def METHOD_NAME(self, n):
    """ See :meth:`ToyLogPDF.sample()`. """
    if n < 0:
        raise ValueError('Number of samples cannot be negative.')
    # Calculate number of samples from each distribution
    weights = [0.25] * 4
    ns = np.sum(scipy.stats.multinomial.rvs(1, weights, n), axis=0)
    # Draw samples from each distribution, then join them together
    x = [v.rvs(ns[i]) for i, v in enumerate(self._vars)]
    x = np.vstack(x)
    # Shuffle the samples and return
    np.random.shuffle(x)
    return x