Thank you for playing my game and providing your score! :-)
I just created a High-Score-Table in my game-description and added your name to it.
The pathfinding of the navigation system as well as that of all the opponents is done with the A* algorithm of rot.js using a topology of 4, which allows only orthagonal movement. So if the player just strictly follows his navigation system, he will not be able to overtake anyone.
But you are right, the diversity of the paths is mainly achieved by a variation of the starting locations of all characters. The player always starts at the very west of the level (y-coordinate is randomized). Runner H starts a few steps to the east compared to the player (y-coordinate is also randomized) giving him a small advantage since the goal is always in the very east of the level (y-coordinate is also randomized). Runner G starts a even more in the east and so on. So the runner with the best starting position should be runner A in most cases. Since the dungeon and the y-positions are all randomized the starting position of player A is not always the best and that of the player is not always the worst, it is just a tendency.
Another mechanism to achieve route-diversity is confusion. Runners get sometimes confused if others in front of them are using the same path. In this case a new path is calculated trying to avoid the paths of the runners in front of the confused runner.