This is a chance for me to test my understanding by trying to explain it myself.
Monte Carlo is where you randomly choose solutions from a solution space and then try to make the results better for each choice.
Imagine you are trying to find the highest point on earth. Rather than scan the entire earth to find the highest point, you choose a sample of points and then see if there is something higher near-by.
This is _in general_ more efficient than scanning the whole earth, but of course there is a change that you miss Everest.
Consider the alternative approach of choosing a point and then looking for higher points nearby ( aka Gradient Descent). Suppose you started somewhere in Britain... you might scan the local area and come to the conclusion that snowdon is the highest place in the world.
Now image that you do this 100 time, and then compare the local bests of those 100 attempts. You are more likely to find the highest point. That's monte carlo I think.
Anyway, I'm not sure this has anything to do with what the OP is talking about.
If I understand he/she wants to recreate an app. Does that mean reverse engineer? Are you trying to recreate someone else's app without direct access to that app?
Are you trying to examine interactions with the app and predict what the app will do, and hence "simulate" the app?
You might also consider creating a _smart_ proxy, that lets you cache results locally such that if you ask for the same thing a second time it's comes back faster.
Additionally by implementing a proxy , you can populate your own copy of what ever data the original service is providing and study that for the purposes of reverse engineering.
This sounds like a great conversation to have over a $drink, and/or in front of a white board.
David