induction sigma; intuition; simpl in *.
case_eq (nth_error ls a); intuition.
simpl.
f_equal.
eapply IHsigma; intuition.
exfalso.
eapply nth_error_not_None.
eapply H.
intuition.
trivial.
Qed.

Theorem shuffle_Permutation :
forall (ls1 ls2 : list A),
In ls2 (getSupport (shuffle ls1)) ->
Permutation ls1 ls2.