Code:
r.Next(0, lines.Length - 1);
Already wrong here. Read the MSDN documentation for the Next() function. The upperbound value is an exclusive value, so if you had it set to lines.Length, this would mean that it would never return a value equal to or higher than lines.Length. The way you have it now, the word in the last line will never be chosen.
Also, look at how the Random is seeded. You might want to make this a member variable as a static instance of the class.
Other than that, you're on the right track...