How about a counter field that increments with every display of banner, and verifying the counter and display accoring to a formula. For example, if you have set priorities 1,2,3 for three banners, the counter field increments up to 1 for banner one. When the next banner needs to be displayed, it checks the banner one, if the counter is one, it goes to the next one and checks the count. If the count is less than 2, then it displays that banner. If the count is already equal to 2, then moves on to the third banner. Say, the third banner needs to be displayed 3 times for every one display of first banner. Then it checks the third banner whether it was displayed 3 times. If so, it resets all counter fields and restarts with first banner. If not, it displays the third banner until it reaches count 3. Hope this helps.
Happy holidays!