I mean what decides what will be the size of the jump and in which direction?
Generally, there is only one direction - continuously performing multiplication. You can't go backwards, since you can't 'divide' by a number. (Technically you can, but you'd have to do a modinv which will slow everything down.) So the kangaroo analogy kind of breaks down there. But anyways, you're constantly multiplying each of the tames and the wilds (points) by a number that is chosen by the developer of the program.
In this case, the jump sizes are
random, so the size of each jump will be different each time.