Trying to keep everything (pseudo-)random whilst preventing people fighting themselves as long as possible and allowing for any number of robots makes for some "interesting" logic.
The manual system you suggest basically involves re-drawing part of the competition at some stage. Since it would be a rather complex draw it could take some time and is of course error-prone. At least the fixed algorithm we have at the moment only requires one draw at the beginning then everything runs on its pre-determined path. We just need to tweak the path a bit.

It's fair to say that Oliver,James and I have got the initial draw down to a fine art now

I'll see what I can do to fix the repeating fights. I think we can reduce the likelyhood bya factor of 2 or more quite simply, but I need to work through all of Peter's charts. Currently there is about a 1 in 4 chance of a fight repeating which isn't really acceptable.