Yes, ORDER BY RAND()
can be very slow in larger result-sets.
An option is to fetch resultset with this statement (into an array):
SELECT sName FROM bpoint WHERE placeID=?;
After that - use array_rand($resultset)
to get a randomized item from the $resultset
query.