Since there appears to be renewed interest in speedrunning this game and I am interested in seeing one done, I decided to take a stab at deciphering the game's RNG. It's located at address 0x030034B0 (at least on VBA, you'll probably have to drop the first 3 on BizHawk) and the next function is
function nextrng(n)
local a=0x41C6*(n%65536)+SHIFT(n,16)*0x4E6D
local b=0x4E6D*(n%65536)+(a%65536)*65536+0x3039
return b%4294967296
end
which advances every frame. The time at which the RNs are taken is not consistent with when you select "Do It," but appears to depend on the animation, including whether or not your character has to turn before making the attack.
I've only tested on the snowball fight so far, but the game appears to use 8 RNs for one attack... haven't figured out how it processes them yet though.
EDIT: Actually, lol the details are right here
https://www.gamefaqs.com/gba/560436-final-fantasy-tactics-advance/faqs/26262
my bad. But I'll convert the thing into a fully fledged lua script for you guys to enjoy!