I could introduce SOME randomness by giving the initial reaction a chance at dropping more than one laced chunk.
Would that work?
Reactions don't work that way. The way you have it set in that spoiler, you'd get 154% of a laced obsidian chunk every time you run the reaction. So, run it once, you get 1, twice 3 total (154+154=308), and every 50 you do you'd have gained 77 (154x50=7700) laced obsidian chunks.
That is, the first number in the product lines is not a chance to get the item, as you appear to think, but rather the percentage of an item that is produced. Every time you have 100% of a given item in a smelter, it actually produces one; this is stored per smelter, not universally.
Now, what you could do is make obsidian an ore of various metals; ores actually are a %chance of getting the material, so tetrahedrite for example, which is a 20% silver ore, doesn't give you 20% of a silver per reaction, but actually gives you one silver 20% of the time, so you have a chance of getting a silver the first time you smelt tetrahedrite. Now, this would mean that you'd have at least a 1% chance of getting any metal you made obsidian an ore of, so I'd suggest limiting the metals present to relatively common ones (especially not adamantine); for instance, add the following to obsidian's matgloss_stone_layer entry:
[METAL_ORE:TIN:5]
[METAL_ORE:BISMUTH:5]
[METAL_ORE:COPPER:4]
[METAL_ORE:ZINC:4]
[METAL_ORE:LEAD:3]
[METAL_ORE:NICKEL:3]
[METAL_ORE:SILVER:2]
[METAL_ORE:IRON:2]
[METAL_ORE:GOLD:1]
This would make it so that every obsidian stone you smelted would have a chance of giving a tin, a bismuth, a copper, a zinc, a lead, a nickel, a silver, an iron, and a gold, all at once (though very improbable).
Hmm... Actually, you might try a similar method, but with some modifications. First, make a number of "Metal-rich Obsidian" metals, make normal obsidian an ore of these metals, and then make smelter reactions to turn a number of them into a new stone that is an ore of the common (and uncommon) metals. What I mean is:
Change obsidian's entry in matgloss_stone_layer to:
[MATGLOSS_STONE:OBSIDIAN]
[NAME:obsidian][COLOR:0:7:1][TILE:177][LAVA][SHARP]
[IGNEOUS_EXTRUSIVE]
[ORE_METAL:METAL_OBSIDIAN_1:5]
[ORE_METAL:METAL_OBSIDIAN_2:4]
[ORE_METAL:METAL_OBSIDIAN_3:3]
[ORE_METAL:METAL_OBSIDIAN_4:2]
[ORE_METAL:METAL_OBSIDIAN_5:1]
[VALUE:3]
Add the following to matgloss_metal:
[MATGLOSS_METAL:METAL_OBSIDIAN_1]
[NAME:metal-bearing obsidian]
[VALUE:3]
[BRITTLE][WAFERS][DEEP]
[SOLID_DENSITY:2670]
[MATGLOSS_METAL:METAL_OBSIDIAN_2]
[NAME:metal-bearing obsidian]
[VALUE:3]
[BRITTLE][WAFERS][DEEP]
[SOLID_DENSITY:2670]
[MATGLOSS_METAL:METAL_OBSIDIAN_3]
[NAME:metal-bearing obsidian]
[VALUE:3]
[BRITTLE][WAFERS][DEEP]
[SOLID_DENSITY:2670]
[MATGLOSS_METAL:METAL_OBSIDIAN_4]
[NAME:metal-bearing obsidian]
[VALUE:3]
[BRITTLE][WAFERS][DEEP]
[SOLID_DENSITY:2670]
[MATGLOSS_METAL:METAL_OBSIDIAN_5]
[NAME:metal-bearing obsidian]
[VALUE:3]
[BRITTLE][WAFERS][DEEP]
[SOLID_DENSITY:2670]
Add the following to matgloss_stone_mineral:
[MATGLOSS_STONE:ORE_OBSIDIAN_1]
[NAME:metal-bearing obsidian][COLOR:0:7:1][TILE:177]
[VALUE:3]
[METAL_ORE:ZINC:5]
[METAL_ORE:TIN:5]
[METAL_ORE:NICKEL:5]
[MATGLOSS_STONE:ORE_OBSIDIAN_2]
[NAME:metal-bearing obsidian][COLOR:0:7:1][TILE:177]
[VALUE:3]
[METAL_ORE:LEAD:4]
[METAL_ORE:COPPER:4]
[METAL_ORE:BISMUTH:4]
[MATGLOSS_STONE:ORE_OBSIDIAN_3]
[NAME:metal-bearing obsidian][COLOR:0:7:1][TILE:177]
[VALUE:3]
[METAL_ORE:SILVER:3]
[METAL_ORE:IRON:3]
[METAL_ORE:GOLD:3]
[MATGLOSS_STONE:ORE_OBSIDIAN_4]
[NAME:metal-bearing obsidian][COLOR:0:7:1][TILE:177]
[VALUE:3]
[METAL_ORE:PLATINUM:2]
[METAL_ORE:ALUMINUM:2]
[MATGLOSS_STONE:ORE_OBSIDIAN_5]
[NAME:metal-bearing obsidian][COLOR:0:7:1][TILE:177]
[VALUE:3]
[METAL_ORE:ADAMANTINE:1]
And the following to reaction_standard:
[REACTION:PURIFY_OBSIDIAN_1]
[NAME:Process obsidian for trace metals]
[SMELTER]
[REAGENT:1:METAL:NO_SUBTYPE:METAL:METAL_OBSIDIAN_1]
[PRODUCT:100:1:STONE:NO_SUBTYPE:ORE_OBSIDIAN_1]
[FUEL]
[REACTION:PURIFY_OBSIDIAN_2]
[NAME:Process obsidian for trace metals]
[SMELTER]
[REAGENT:1:METAL:NO_SUBTYPE:METAL:METAL_OBSIDIAN_2]
[PRODUCT:100:1:STONE:NO_SUBTYPE:ORE_OBSIDIAN_2]
[FUEL]
[REACTION:PURIFY_OBSIDIAN_3]
[NAME:Process obsidian for trace metals]
[SMELTER]
[REAGENT:1:METAL:NO_SUBTYPE:METAL:METAL_OBSIDIAN_3]
[PRODUCT:100:1:STONE:NO_SUBTYPE:ORE_OBSIDIAN_3]
[FUEL]
[REACTION:PURIFY_OBSIDIAN_4]
[NAME:Process obsidian for trace metals]
[SMELTER]
[REAGENT:1:METAL:NO_SUBTYPE:METAL:METAL_OBSIDIAN_4]
[PRODUCT:100:1:STONE:NO_SUBTYPE:ORE_OBSIDIAN_4]
[FUEL]
[REACTION:PURIFY_OBSIDIAN_5]
[NAME:Process obsidian for trace metals]
[SMELTER]
[REAGENT:1:METAL:NO_SUBTYPE:METAL:METAL_OBSIDIAN_5]
[PRODUCT:100:1:STONE:NO_SUBTYPE:ORE_OBSIDIAN_5]
[FUEL]
[/spoiler]
Now, to explain what is going on in this whole thing. First, you have normal obsidian that is an ore of metals that otherwise appear nowhere. These metals are not in it very often, but they're in all obsidian. Once you have one of these metals, which are otherwise useless, you can process them at a smelter to a new stone that is an ore of other, more standard metals.
What this means is that you essentially have a .25% (not 25, but .25; 1/4 of 1%) chance of getting a zinc bar for every obsidian stone, the same for tin and nickel, a .16% chance for lead, copper, and bismuth, .09% for silver, gold, and iron, .04% for aluminum and platinum, and a .01% chance for an adamantine wafer. So, for every 10,000 obsidian processed in this way (which, unfortunately, does take 3 smelter reactions for each stone), you're likely to get 25 zinc, tin, and nickel, 16 lead, copper, and bismuth, 9 silver, gold and iron, 4 aluminum and platinum, and 1 adamantine.
The advantage of this method is that, unlike the methods you had outlined before I started typing (which, admittedly, was a while ago), it is truly random. You can of course play with the chances by altering the numbers; were I to make this mod, I'd probably make multiply the 5 ORE_OBSIDIAN stones' ore chances by 10 so it would "only" be a 1/1000 chance of getting an adamantine wafer per obsidian stone instead of 1/10000, but your mileage may vary