Типа если ты заполняешь матрицу начинаешь идти с нулевого и заполняешь работает все как надо? А когда ты пытаешься заполнить матрицу рандомным образом, беря рандомные индексы элементов у тебя выходить хаос? Мне кажется тут проблема в алгоритме, ну или может ты путаешь индексы строк со столбцами (но это наверное самое очевидное), но если матрица не квадратная, то у тебя был бы выход за пределы массива. Можешь код показать?