Oh my this is embarrassing, how long this has lingered. I finally got it to fail locally and...
The good news is it's a test problem, not the code.
The good news is that the test fix is trivial.
The bad news is it's so stupid. There are two calls to random.nextint() that look like this
int blah = random.nextInt(10000);
int blort = random.nextInt(blah).
Whenever blah == 0 it throws an error since blah must be positive.
Checking this in, but I'll keep this JIRA open for a while to see if Jenkins is happy as well as beasting it a lot locally.