public AvailableColors[] GetRandomColors(int amount, AvailableColorPalettes fromPalette = AvailableColorPalettes.Default) { switch (fromPalette) { default: _colors = RawColors.Keys.ToList(); break; case AvailableColorPalettes.Distinct: _colors = DistinctColors.Keys.ToList(); break; } var usedAmount = amount > _colors.Count ? _colors.Count : amount; AvailableColors[] returnColors = new AvailableColors[usedAmount]; int randIndex = 0; for (int i = 0; i < usedAmount; i++) { randIndex = _random.Next(0, _colors.Count); returnColors[i] = _colors[randIndex]; _colors.RemoveAt(randIndex); } _colors = null; return(returnColors); }
public virtual AvailableColors GetRandomColor(AvailableColorPalettes fromPalette = AvailableColorPalettes.Default) { if (_colors == null) { switch (fromPalette) { default: _colors = RawColors.Keys.ToList(); break; case AvailableColorPalettes.Distinct: _colors = DistinctColors.Keys.ToList(); break; } } return(_colors[_random.Next(0, _colors.Count)]); }