If you haven't learned about labda/predicates and Linq yet, those are great concepts to learn in C#. Then you can use the OrderBy method to sort.
However, in your case, you'd have to combine it with some more code:
PickObjects(), returns an IList<Reference>
From each Reference you need to get the Element, then you have to get the value of the parameter you need, then sort by that value. Something like this (very simplified):
// Get picked object references
IList<Reference> pickedObjects = uidoc.Selection.PickObject(...);
// Convert all references to elements
List<Element> pickedElements = pickedObjects.Select(x=>doc.GetElement(x)).ToList();
// Sort all elements by the value of "MY_PARAMETER"
List<Element> sortedElements = pickedElements.OrderBy(x=>x["MY_PARAMETER"].AsDouble()).ToList();
Be aware, that this is not very efficient as you will have to query "MY_PARAMETER" more than once for each object (the OrderBy function will do that). So if it's too slow you will have to cache the parameter value in something like a Tuple<Double, Element>.
Also, you should handle errors when the parameter isn't present on an object or parameter doesn't have a value.