Générer N nombres aléatoires et uniques dans une plage

Ce qui est un moyen efficace de générer des N nombres uniques à l'intérieur d'une plage à l'aide de C#? Par exemple, de générer des 6 numéros uniques entre 1 et 50. D'une manière paresseuse serait de tout simplement utiliser Random.Next() dans une boucle et de stocker ce nombre dans un tableau/liste, puis de les répéter et de vérifier s'il existe déjà ou pas etc.. Est-il une meilleure façon de générer un groupe de hasard, mais unique, de chiffres?
Pour ajouter plus de contexte, je voudrais sélectionner N aléatoire des éléments d'une collection, à l'aide de leur index.

grâce

source d'informationauteur Skoder