The NBA does, I dunno about the MLB. In the NBA they get tested but only rookies have a drug test, afterwards you only have to do a test if you are suspected (like seen with a dealer etc) - that's why barley someone gets busted.
Charles Oakley once said that 3/4 of the players smoke weed.