Почему бы просто не нормализовать его в одномерный массив?
Визуально, если ваш 2D массив выглядит так:
0: X X
1: X
2: X X X
3: X X X X
Думайте об этом так:
0: (X X) (X) (X X X) (X X X X)
Скобки просто добавлены для ясности, чтобы показать, что каждая строка оригинала объединяется в одну длинную строку.
Теперь вам просто нужно получить одно случайное число от 0 до N-1, где N - общее количество 'X на диаграмме.
Конечно, чтобы на самом деле получить доступ к выбранному случайному элементу, вам необходимо соответствующим образом пропустить 2D-массив (см. ответ Джеффа Свенсена ).