Suppose we have a non-invertible continuous function that maps from some continuous interval ${I}^n$ to $\mathbb{R}$ with $n \ge 1$. To take an example, let
$f(a,b,c) = a \cdot e^{-bc} - b \cdot e^{\sqrt{ac+1}}$
with the interval $I$ being $[0, 1]$, so $a, b, c \in [0, 1]$. How can we generate a certain number of samples from a function like this so that the output follows a uniform distribution? In other words, each sample $s = \{a_s, b_s, c_s, f(a_s,b_s,c_s)\}$ should be constructed so that $f(a_s,b_s,c_s)$ has the same probability of being any value between $f$'s minimum and maximum value. Is there some simple procedure for doing this or does it depend on the function in question?
You can (approximately) do it using Rejection sampling.