First off, you don't have to specify the number individually:
List<string> numbers = Enumerable.Range(1, 28).Select(i => i.ToString()).ToList();
Will fill it nicely.
And you can create a copy of the list for later "reset" very easily:
List<string> original = numbers.ToList();
Get one randomly? Also simple:
private Random rand = new Random();
...
int index = rand.Next(numbers.Count);
string value = numbers[index];
And to prevent repetition, just add one line:
numbers.RemoveAt(index);
[edit]Stupid HTML tag autocomplete...[/edit]