в экшен SET_RND_NUM не передавать рандомное число, перенеся эту логику в редьюсер. Да, редьюсер перестанет быть "чистой функцией", но невелика потеря.
Переносим соответствующий вызов dispatch из обработчика клика в эффектсвятые отцы не рекомендуют так делать - https://beta.reactjs.org/learn/you-might-not-need-...
Долго учить typescript?
Array.prototype.valueOf = function() {
return this.reduce((a, x) => a + x, 0);
};