using System.Collections.Generic;
public static bool ExistsNonSelectedElement(int[] arr, List<int> selectedElements)
if(selectedElements == null || arr == null)
bool resultFlag = arr.OrderBy(e => e).Any(e => !selectedElements.Distinct().OrderBy(e => e).Contains(e));
public static int GetRandomElement(int[] arr)
var randomIndex = new Random().Next(minValue: 0, maxValue: arr.Length);
element = arr[randomIndex];
public static void Main()
int[] givenArr = new Int32[] { 1, -3, 0, -3, 1, 0, 0, 0, 2, 1 };
List<int> selectedElements = new List<int>();
while(ExistsNonSelectedElement(arr: givenArr, selectedElements: selectedElements))
var elem = GetRandomElement(givenArr);
if(!selectedElements.Contains(elem))
selectedElements.Add(elem);
Console.WriteLine($"Selected elements: [{string.Join( separator: ", ", selectedElements)}]");