Randomly outputting an array



What would be the simplest way to output an array in random order, but
every element in the array MUST be outputted and the elements cannot
repeat? My current code is below, which I simply have a very large
array and I am outputting windows of an arbitary length.

int c = 0;
int p = windowSize;
int q = 0;
int index = 0;
while (c < counter0 - (windowSize - 1))
{
for (index = q; index < p; index++)
{
Writer.Write(geneArray0[index]);
Writer.Write(" ");
}
Writer.Write("1");
Writer.WriteLine();
q++;
p++;
c++;
}

.