Try this:
int index = 0;
list1 = list1.OrderBy(d => list2[index++]).ToList();
It should produce the expected result given the following two lists:
List list1 = new List { "A", "B", "C", "D", "E", "F" };
List list2 = new List { 50, 100, 14, 57, 48, 94 };