Betting and match fixing at a global scale.
Was never quite satisfied with it since the simulation was quite primitive and would never work on the holy grail of cricket (test matches). But even then users on r/cricket found it amusing enough.
I had started working on another version using neural networks, but life got in the way and I never made a lot of progress with it :/
You can pick a time interval and the average amount of times an event (scoring a point, for example) that occur in that interval and get a realistic random simulation.
The time period could be a whole game or every 30 seconds during a game.
Unless there's something about cricket I don't know that makes it a bad match for this
For example, if the pitching party is 8 runs ahead with one ball to play, the bowler’s primary goal should be to not throw an extra (https://en.wikipedia.org/wiki/Extra_(cricket)). Getting hit with a four or six wouldn’t be ideal, but still would win them the match.
If, on the other hand, they’re a single run ahead with a hundred balls to play while the batters have a single wicket in hand, trying to minimize runs conceded per over doesn’t make sense; the bowler should instead aim to get that last wicket even if that means the risk of losing the match in a single ball is extremely high.
For the batter, similar arguments apply. If there’s no need to score fast, good batters will take less risk. Also, there’s the relationship with your partner. You want the better player to get at bat and stay there. That may mean running a single in cases where you could easily run two.
Because of that, I think a good simulation would have a spectrum of distributions for both the bowler and the batter and a function that picks one of them depending on circumstances (including, of course, the weather forecast).