Using this implementation for drawing is significantly faster for higher valu of `n_labels`
```
        y = set()
        while len(y) != n:
            # pick a class with probability P(c)
            c = np.searchsorted(cumulative_p_c, generator.rand(n - len(y)))
            y = y.union(c)
        y = list(y)
```