Mi sfugge tutta la logica dello script. Comunque.

UPDATE Citazioni SET Data=curdate() WHERE Data = '0000-00-00'

e quando fai un ordinamento casuale ci vuole order by rand(), non order by random.