diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index fa734fa638fa3db8ca829fe584fea993b8fcb840..0dd8bb3c37bdd9929c9b4eb11ba77b43d21d4c97 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -1759,7 +1759,7 @@ function _M:createRandomBoss(base, data)
 	local force_classes = data.force_classes and table.clone(data.force_classes)
 	for name, cdata in pairs(classes) do
 		if force_classes and force_classes[cdata.name] then apply_class(table.clone(cdata, true)) force_classes[cdata.name] = nil
-		elseif not cdata.not_on_random_boss and (not data.class_filter or data.class_filter(cdata))then list[#list+1] = cdata
+		elseif not cdata.not_on_random_boss and (not cdata.random_rarity or rng.chance(cdata.random_rarity)) and (not data.class_filter or data.class_filter(cdata))then list[#list+1] = cdata
 		end
 	end
 	for i = 1, data.nb_classes or 2 do
diff --git a/game/modules/tome/data/birth/classes/afflicted.lua b/game/modules/tome/data/birth/classes/afflicted.lua
index b6e7e34b24f52f0779c71543fc01d09ffe395c70..c05abf3b61b1c2c0cde4d59ea94c8e173ae5fc06 100644
--- a/game/modules/tome/data/birth/classes/afflicted.lua
+++ b/game/modules/tome/data/birth/classes/afflicted.lua
@@ -108,6 +108,7 @@ newBirthDescriptor{
 		"#GOLD#Life per level:#LIGHT_BLUE# +0",
 	},
 	power_source = {psionic=true},
+	random_rarity = 2,
 	stats = { wil=4, cun=5, },
 	talents_types = {
 		["cursed/dark-sustenance"]={true, 0.3},
diff --git a/game/modules/tome/data/birth/classes/chronomancer.lua b/game/modules/tome/data/birth/classes/chronomancer.lua
index 1fb8903dc7f00b25b915f551fd5db84c6473c7cb..d1542da93a0bb42b87ad1e8a34ca14fdc2142c86 100644
--- a/game/modules/tome/data/birth/classes/chronomancer.lua
+++ b/game/modules/tome/data/birth/classes/chronomancer.lua
@@ -54,6 +54,7 @@ newBirthDescriptor{
 		"#GOLD#Life per level:#LIGHT_BLUE# -4",
 	},
 	power_source = {arcane=true},
+	random_rarity = 2,
 	stats = { mag=5, wil=3, cun=1, },
 	talents_types = {
 		["chronomancy/age-manipulation"]={true, 0.3},
@@ -104,6 +105,7 @@ newBirthDescriptor{
 		"#GOLD#Life per level:#LIGHT_BLUE# +0",
 	},
 	power_source = {technique=true, arcane=true},
+	random_rarity = 2,
 	stats = { str=2, wil=2, dex=3, mag=2},
 	talents_types = {
 		["technique/archery-bow"]={true, 0},
diff --git a/game/modules/tome/data/birth/classes/psionic.lua b/game/modules/tome/data/birth/classes/psionic.lua
index 26b9b8dad87a7227637f9d0a2e9799c677f12a58..0ee616c5f2c91418212275d836f9c13324e722c8 100644
--- a/game/modules/tome/data/birth/classes/psionic.lua
+++ b/game/modules/tome/data/birth/classes/psionic.lua
@@ -158,7 +158,7 @@ newBirthDescriptor{
 		life_rating = -4,
 	},
 }
--- Edge TODO: Unlock stuff
+
 newBirthDescriptor{
 	type = "subclass",
 	name = "Solipsist",
@@ -175,6 +175,7 @@ newBirthDescriptor{
 		"#GOLD#Life per level:#LIGHT_BLUE# -4 (*special*)",
 	},
 	power_source = {psionic=true},
+	random_rarity = 2,
 	stats = { str=0, wil=5, cun=4, },
 	birth_example_particles = {
 		function(actor)