You can have deterministic randomness, though! (re: allowing for player strategies with random search) Just need to have/use random functions that always return the same results in the same order with the same game seed (and other parameters, if any). It's only things like seeding on time that would make it actually change from one 'identical' run to the other.
Maybe that's what ultimately happens with the referee anyway, not sure; but there's always more convoluted but more predictable uniform-distribution tricks like "on even turns, start looking from bottom of the player list; on odd turns, start from top"
re: debugging - Most of the time, I found I needed to change the stderr output to debug properly (too much data to output all of it all the time), so that's why I needed the IDE.
Not sure whether getting the same outcome vs. the same opponent is really a bad thing, in the context of trying to rank the bots against each other? Am I missing something? I suppose it can be frustrating from a player's point of view. but hey, at least then you know for sure which bots are better than yours.
Anyway, most of that is more about the platform in general at this point, I guess I'll get used to it as I figure it out.