The best way (although a workaround) I see is:
in a first step select the ids where special_offer='Y', then, in the php script pick one random id and query the db for that record ...
// select ids into an array named $idlist
srand((double)microtime()*1000000);
$picked = $idlist[rand(0, count($idlist)-1];
// now select the record with id $picked