in reply to Finding a random line

Before we can really answer your question:
In what manner of efficiency do you want?
Would placing all lines in an array and picking a random number based on the size work or too memory intensive?
Would checking the size of the file with "wc -l" and then reading down a random number of lines work? Or is that not portable enough?
You could read the file twice to avoid the "wc -l" which is a bit intensive, but the filesytem may give you leeway with buffering.
You could massage the data so that the leading line has the # to go off of. Or even better create a file with the size data in the first block you read and then seek to the random spot.
If none of this gives a clue for you to go off of, then please give more info back.