Rotating leads with fixed distribution percentages

Plus 1 to all of the above.

We need to assign Contacts/Deals to our sales reps based on a specific percentage.

Example:

Rep A = 50%

Rep B = 25%

Rep C = 25%