I did some experimentation and, although not documented, it seems that FindEdgeCover[] does what you want.
Consider, for example:
h[list_] := CompleteGraph[4, EdgeWeight -> list] FindEdgeCover[h@Range@6] (* -> {1->2,1->3,1->4} *)
But
FindEdgeCover[h@Reverse@Range@6] (* -> {1->2,3->4} *)
of course, no guarantees ...
Edit
Here you have the code for experimenting using various weighted adjacency matrices
adj = {{\[Infinity], 1, 1, 1, 1}, {1, \[Infinity], 2, 2, 2}, {1, 2, \[Infinity], 2, 2}, {1, 2, 2, \[Infinity], 2}, {1, 2, 2, 2, \[Infinity]}} g = WeightedAdjacencyGraph[adj]; g = WeightedAdjacencyGraph[adj, VertexShapeFunction -> "Name", EdgeLabels -> MapThread[ Rule, {EdgeList@g, AbsoluteOptions[g, EdgeWeight] /. {_ -> x_} -> x}], GraphHighlight -> FindEdgeCover[g]]

NB: the code is not very good, but I could not find a way to use EdgeLabels -> "EdgeWeight" . I posted this question to find out if anyone can do this.