Couple reasons. I don't believe you can call a function that way. try seperating it out of the query:
"select * from t_1 order by". rand() . " limit 1";
Also, I don't think you can just call a column number that way. Even if you could, you haven't limited your rand(). rand could grab 8345, which I doubt you have as a valid column.