Вот массив:
const rows = 3;
const cols = 5;
const max = 10;
const arr =
Array.from({ length: rows }, () =>
Array.from({ length: cols }, () =>
Math.random() * max | 0
)
);
А вот суммы и вдоль, и поперёк, а где там у вас столбцы, и где строки - разбирайтесь сами:
const sumRows = arr.map(n => n.reduce((acc, m) => acc + m, 0));
const sumCols = (arr[0] || []).map((n, i) => arr.reduce((acc, m) => acc + m[i], 0));
// или
const [ sumRows, sumCols ] = arr.reduce((acc, n, i) => (
n.forEach((m, j) => (acc[0][i] += m, acc[1][j] += m)),
acc
), [ rows, cols ].map(n => Array(n).fill(0)));