I just think time in seconds has a perfectly even spread of odds and evens so if you divide it by two and test it for whether its an integer or not, some of the time it will be the former and every other time the latter. No need to do any more IMO. Use of rand just weakens the distribution. And if you don't want it so regular you can choose a different output from date() and your period is longer. Works for most of them except day of the week and day of the month. I didn't share code because it'll break his upgrade path and also I don't want to be the person who opened the flood gates of people bending the policies of the two providers. Plus he'll want to know where to put the code and if you're using echo it'll probably come out in the wrong place on the page etc. etc. But yeah, sorry I'm being down on your helping the guy, don't mean to come across like that. Its certainly possible to knock up something for him that will do the trick.