Sampling from simplex with inequality constraints

Thanks! I still have to wrap my head around the Dirichlet process bit. I’m not sure if the following sampling procedure correctly implements the stick_breaking approach you propose.
To give a concrete example, I’m drawing 3 random variables, with x_0 < 0.6, x_1 < 0.8 and x_2 < 0.1. I’m repeating 1000 times to scatter-plot the resulting distribution.

n = 1000
a = np.zeros((n, 3))
for i in range(n):
    x0 = np.random.uniform(0, 0.6)
    x1 = np.random.uniform(0, min(1-x0, 0.8))
    x2 = np.random.uniform(0, min(1-x1-x0, 0.1))
    a[i] = [x0, x1, x2]

stick_breaking
While the constraints are indeed fulfilled, the sampling is not uniform anymore. For 3 variables, this would be kind of ok, however I need to go to 15 variables and that case the variables that are being sampled later in the procedure have no stick left to break.
Am I implementing the idea correctly?

I also tried fullfilling the inequality constraints via rejection sampling, but again in 15 dimensions the acceptance rate is ~0.