>>9
ありがとうございます!できました!

setlocal enabledelayedexpansion
forループの初め

set /a hoge1=%random%
set /a hoge2=%random%
set /a hoge3=!hoge1!+!hoge2!

echo !hoge3!
forループの終わり


という風にしたら、動きました。
デフォルトではforループ全体が一気に読み込まれるので、変数への代入が実行される前に変数の内容が確定してしまうという仕様なんですね。それを回避するために、!を付けて展開遅延変数を用いる、ということですね。

ただ、ランダムにしたはずなのに、毎回同じ値が表示されますね…
何故…