Is Monte Carlo approach (versus a gradient based approach) basically trying a bunch of different things until something works, or is it more nuanced than that (perhaps with intelligent optimization of what to try next?)?
To give a silly example, Monte Carlo is like trying to guess the surface area of a dartboard by throwing darts at it and counting how many hit it, while gradient descent is like throwing darts at the board until you hit the center (or something you think is the center).