when you create the hitbox immediately after the action that is
"create hitbox at XY layer 0" or if you use
"object.Spawn object at imagepoint 0"
under it you can add the following action
set hitbox size : width = hitbox.width + random(10,-10) Height = hitbox.height + random(10,-10)
that will make all the hitbox created have different size, you can change the 10 , -10 to whatever value you want.
that way you create either rectangles or squares but if you want to keep the aspect ratio of the hitbox in case u want all to have a square look or initial size, but only like make them smaller or bigger without warping the initial shape u use
hitbox.set scale to random(0.8,1) where 0.8 is 80% of the initial size and 1 is 100%.
random(n1,n2) picks a random value between those numbers.
the same way if you have different animations for hitboxes, you change the animation by adding another action under like
hitbox.setanimation to choose("animation1","animation2","animation3") but you have to have those animations inside the sprite object hitbox.
if you want to change the frame in case you have only different frames, like different shapes stars, circles, squares etc. u use
hitbox.setanimationframe to floor(random(0,hitbox.animationframecount-1))
for the animation frame change you need to disable or set the animation speed that contains those frames to 0 so they don't change after u set them.
hitbox.animationframecount is the total number of frames you have inside that animation for the hitbox, but construct counts from 0 and
hitbox.animationframecount counts from 1 so you have to subtract 1 in order to get the right total frames count based on Construct's counting system.