Solution 1:

This is done via the min and max properties. Here is an example of a loot table that drops 1-1024 diamonds:

{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "minecraft:diamond",
                    "functions": [
                        {
                            "function": "minecraft:set_count",
                            "count": {
                                "min": 1,
                                "max": 1024
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Since there is no way to apply a single loot table to all blocks and mobs, you need to create a loot table like this for every block and mob.