First I am getting the total number of rows in the table.
Then I create a new random number generator and use it to skip to an arbitrary row.
This option is totally independent from the backend that you use.

If you want something closer to your original SQL query and you target only MS SQL as backend, you can use the following snippet:

1.var query1 = (from c in dataContext.Cars

2.orderby "NEWID()".SQL<Guid>()

3.select c).Take(1);

4.var sql1 = query1.ToString();

5.var result1 = query1.ToList();

Here the magic is done by the SQL<T>() extension method that allows you to plug some SQL statements in your queries.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.