Not entirely surprised. You have to do a much longer form of it to make it function how you'd expect.
As such
[State 0, 1]
type = ChangeAnim
triggerall = Life > 800
trigger1 = Anim != 0 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over
value = 0
[State 0, 1]
type = ChangeAnim
triggerall = Life <= 800
trigger1 = (Anim != 0 || anim != 3) && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over
trigger3 = (anim = 0 || anim = 3) && animtime = 0
value = ifelse(random < 500, 0,3)
And i'm not entirely positive about this one either. Basically you need to tell mugen exactly what to use and when. You could set up a randomly set variable that bounces between 0 and 3 when animtime = 0 in either of those animations and use anim != var(21) value = var(21) which might be easier to do tbh.
varset
triggerall = life <= 800
trigger1 = anim = 0 || anim = 3
trigger1 = animtime = 0
v = 21
value = ifelse(random < 500, 0,3)
changeanim
anim != var(21)
value = var(21)
Possibly. I'd need to play round with it to perfect it, so you will too.