Чтобы ответить на поставленный вопрос:
- Поместите первую шахматную фигуру в случайное место, которое еще не занято
- Повторите для остальных 19 штук
Серьезно, вы не дали нам достаточно информации, чтобы вообще ответить на этот вопрос. Вот несколько вопросов:
- Какие шахматные фигуры?
- Какие цвета (их по 16) и имеет ли значение цвет? Должны ли белые быть в плену у черных и наоборот?
При условии, что нет никаких правил, за исключением того, что вам нужно разместить все 20 на доске, т.е. без столкновений, это будет делать то, что вы хотите:
Piece[] pieces = ... your 20 pieces here
Piece[] board = new Piece[8 * 8];
Random r = new Random();
foreach (Piece piece in pieces)
{
while (true)
{
Int32 location = r.Next(board.Length);
if (board[location] == null)
{
board[location] = piece;
break;
}
}
}
Более простое решение, при условии, что у вас уже есть вспомогательные подпрограммы, заключалось бы в том, чтобы просто поместить их в начало массива из 64 элементов, а затем перемешать весь массив. Это перетасует эти 20 частей и 44 пустых квадрата вокруг, и эффективно разместит их в случайных местах.