yoyochaos
Vlad the retro gamer
yoyochaos

When playing on an emulator I would use a save state right before throwing a pokeball to capture the pokemon. If the pokemon would escape I would load the save state and throw the ball again and repeat the process until the pokemon was caught. So I would say it’s mostly random and also depends on the ball.