instead of using the random routine you could implement psudo-random code to fix the number times before it restarts.
Linear-feedback shift register - Wikipedia and check out the section "Some polynomials for maximal LFSRs"
also lets say you have 14 names in your array; you gonna have to implement a "4 bit LFSR" (period 15) which means that ur gonna have 2 invalid cases(14 and 15) since you array goes from 0-13. if that's the case u can set a if-else statement to call back the pseudorandom routine is value if >13
hope that helps