How to create a fields on the users profile to allow them choose from a number of opens then order them based on preference
If it's D7, user profiles are fieldable, so you've got what you want out of the box : add a field in admin/config/people/accounts/fields with a select wodget and you're done.

For the ordering, I think Draggable Views could be worth a look.