if i understood your requirement correctly then this would help, and i think there is no point of comparing two lists, the data is always different.
List<string> names = new List<string>() { "Bob", "Lara", "Andrew", "Adam" };
List<string> surnames = new List<string>() { "Dar", "Tars", "Vernik", "Smith" };
List<String> fullnames = names.Concat(surnames).ToList();
Random rand = new Random();
String randomname = fullnames[rand.Next(fullnames.Count)];
int index = names.IndexOf(randomname);
if (index == -1)
index = surnames.IndexOf(randomname);
string name = names[index];
string surname = surnames[index];