Classificação personalizada com o LINQ

Parece que estou perdendo algo trivial.

Enfim, aqui vai:

var order = new[]{1,3,2};
var foos = new[]{new Foo{Id=1}, new Foo{Id=2}, new Foo{Id=3}};

Como ordenar foos por ordem array usando Linq?

Resultado desejado:

foos == new[]{new Foo{Id=1}, new Foo{Id=3}, new Foo{Id=2}};

Editar:
O pedido contém IDs Foo. Desculpe por não ter mencionado isso. Às vezes é ainda mais difícil fazer perguntas do que respondê-las. :)

questionAnswers(6)

yourAnswerToTheQuestion