To solve the first problem, use this code:
List<string> yourList = new List<string>() { "012345", "032165", "211458", "214563", "098796", "574623", "894235", "3135698"};
List<string> firstDigits = yourList.Select(x => x.Substring(0, 1)).ToList();
About the second problem, I'm not sure, but try this, and tell me if this isn't what you want:
Random r = new Random();
int max = yourList.Select(x => x.Length).Min();
int randomNum = r.Next(9);
List<string> newList = yourList.Where(x => x.StartsWith(randomNum.ToString());
Hope this helps.