75 mm dia circular spinner with twelve holes at the rim for 1/2" chrome steel ball bearings (slingshot ammo). Standard 608 skate bearing (8x22x7mm). Scale as necessary for a tight press fit for the balls. Adhesive will throw off the balance. (Just a thought: You might even try 50 caliber lead balls used by muzzleloaders.)
Scale Bearing_Button_v1.stl to 99% so you don't have to press fit it. It's tough to remove the grips from the bearing printed full size.
Try printing with three perimeters, a 20% hex infill, and zero top and bottom layers. This will expose the hex infill (as in the photo), which you use a soda straw to blow against to accelerate the spin. Human power only! DO NOT use an air compressor! Ask your science teacher about centrifugal force.
Using a kerosene-lubed Yellow Jacket ceramic bearing, and with all twelve 1/2" balls installed, I got a five and a half minute spin.
This thing was made with Tinkercad. Edit it online https://www.tinkercad.com/things/kOjbeE1PfJq
Make it spin longer!
Set up your fidget to spin as flat and wobble free as possible. Press the 1/2" balls to an equal depth in all the holes, ideally to the center. (Stop printing about 1/3 to 1/2 way through for a handy spacer.) Every bit of wobble steals energy from a gyroscope, so for the longest spins hold it flat and steady down on a tabletop.
Noise also indicates energy loss in a gyroscope. It takes energy to make noise, so the more quietly you spin, the longer you'll spin. Try flipping the spinner over, or spin it backwards, to see if it runs more quietly.
Fidget case - https://www.thingiverse.com/thing:2410241 - To keep your competition fidget pocket-lint free.
And don't fidget.