T = Total time period in months (12?)
E = Total Number of employees
EPM = Number of employees required to test per month (E = 0.05*E... rounded up)
M = Existing month number (1..12?)
For any given month we can compute:
C = Number of employees that have been chosen at least once.
U = E-C = number of employees that have not yet been chosen in the period (Unchosen)
Near the beginning of the time period, we keep everything totally random. A given employees probability factor will be:
PF = PF0 * RF^q where PF = probability factor, PF0 = initial (unchosen probability factor), RF = Reduction factor, q = number of times chosen.
As we draw near the end of the period, we may need to start enforcing choices, because sooner or later we run out of slots to test the untested employees (assuming EPM is restricted, which may or may not be a real constraint). That point in time would occur when number of months required to test remaining employees is equal to number of months left to test i.e. U / EPM = T-M or maybe to provide a 1-month margin U / EPM = T-M –1 and at this point in time we want the already-tested employees probability factors to go to zero.
To accomplish an orderly transition from totally random at beginning of period to forced at end, we might modify our formula to be something like:
PF = PF0 for employees not yet tested during the period
PF = PF0 * RF^q *[1 – {U/EPM} / { T – M - 1}] ^p for employees already tested during the period
Hopefully you can see that for {U/EPM} << { T – M – 1}, the quantity in square brackets is approximatley 1, and we are sticking with the same random approach as we started out. That's because there are plenty of slots left to accomplish testing of the untested guys.
For {U/EPM} = { T – M – 1}, the quantity in square brackets becomes 0 and we enforce PF=0 for all previously-tested people and only test the untested people (because we have run out of time for randomness).
p is an exponent that controls how quickly the deviation from randomness creeps into the picture.
A low value of p (0.1, 0.2, 0.5) would keep everything random for as long as possible and only start heavily pushing the untested guys toward the end of the period, and then only if it is needed to accomplish the objective of testing everyone.
A high value of p (2, 4, 10), would push towards testing the untested guys earlier in the period, and avoid waiting until the end where if something changes (like a new employee showing up), you might not have enough slots left to test them.
Of course, if it is not a constraint to test the same number every period, you could just add an extra mandatory test for every new employee so you don't have to worry about that complication.
I could end the discussion there. I should also mention that the choice of RF steers things in a certain direction, for given number of employees and given EPM requirement etc, a lower reduction factor also reduces the probability that you will end up with too many untested employees near the end of the period. Also to further this objective you could make a significant decrease in PF after the first test, and then not so much after remaining tests. That gives a little more complicated factor for tested employees:
PF = PF0 * RF1^q1 *RF2^q2 *(1 – {U/EPM} / { T – M}) ^p
where RF1 is reduction factor based on first test (low number like 0.5) and RF2 is reduction factor for subsequent tests (higher number like 0.9). q1 is 0 or 1 dependeing on whether or not employee has been tested once. q2 counts the number of tests beyond the first test. So the sequence of (q1,q2) as an employee is tested would progress as follows: (q1,q2) = (0,0), (1,0), (1,1), (1,2), (1,3) etc
Hopefully I did not make it more complicated than it needs to be. I would encourage you to select an approach that makes sense to you and don't pay too much attention to what I wrote because I really know nothing about the real drivers of your decisions.