Select Random Objects with Name
One option would be to use select random and then run a script that deselects anything that doesn't match the name that you specify.

import bpy

for o in bpy.context.visible_objects:
    if 'gizmo' not in o.name.lower():
        o.select_set(False)


Another way could be to make a list of objects matching the name criteria and then getting a random choice from that list and selecting them.

import bpy
from random import choices

bpy.ops.object.select_all(action='DESELECT')

objlist = [o for o in bpy.context.visible_objects
            if 'gizmo' in o.name.lower()]

rand_list = choices(objlist, k=int(len(objlist) * .75))

for o in rand_list:
    o.select_set(True)


In this example, I set the k parameter to be 75% of the object list. You could also specify an exact number of objects that you want selected.