Wow, thank you both.
My mistake on randomizing the sprite angle was assuming any of the sprite set angle options would work correctly with the bullet behavior whereas apparently the secret with setting the angle to "no" on the behavior was then to use the Set Bullet Angle of Motion. The code example I had was with "yes" which used the default initial angle from the sprite's properties, so I thought that was enough even with the "no" setting. Things like that are not immediately obvious to a newbe.
On the second example, for randomizing the frame, apparently using the random function directly in the Set Animation Frame was the secret as opposed to linking it to a global variable. Since it was a sub-action with a system repeat function I thought it would reroll the variable on every spawn, but apparently not.
Programs are sometimes picky and this one incredibly so (but no more than several others I've been learning).
In any case, thanks again. You saved me hours of experimentation and frustration I would have had to go through tomorrow and I will use these functions for many things.
If we had a central repository of working, useful code examples (as opposed to just searching the forums, which is often a miss), that might be worth the price of the software or more.