I would use TABLESAMPLE, as it generated sample data very easily. I expect this to be more efficient since you are invoking only one SQL fragment.
eg.
USE AdventureWorks ; GO SELECT FirstName, LastName FROM Person.Contact TABLESAMPLE (10 PERCENT)
In another example, you'll have to call select * from db where ID = @RandomNumber many times.
If you are after separate lines, I would use a different method, some random TOP 1, etc.
source share