Quassnoi wrote a message about selecting strings at random without performing sorting. His example selects 10 rows at random, but you can adapt it to select only one row.
If you want it to be really fast, you can use an approximation that will not be completely uniform or sometimes will not be able to return a string.
Bill Karwin:
SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));
SET @sql := CONCAT('SELECT * FROM mytable LIMIT ', @r, ', 1');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
, MyISAM, InnoDB, COUNT (*) InnoDB, MyISAM.