We figured it out! There are two possible ways to change a ship by an anomaly encounter:
Modify your own ModdedAnomalyDefs.xml and ModdedAnomalyDefText.xml:
1) ChangeShip Action:
<Anomaly>
<InternalName>NameOfAnomaly</InternalName>
<DisplayName>NameOfAnomaly_Name</DisplayName>
<Description>NameOfAnomaly_Dec</Description>
<ArtDefine>PrecursorAnomalyArt</ArtDefine>
<Weight>25</Weight>
<EncounterChance>100</EncounterChance>
<EncounterTriggers>
<OnEvent>OnCollideAtAnomaly</OnEvent>
<Target>
<TargetType>Fleet</TargetType>
</Target>
<Lifetime>Instant</Lifetime>
<PerformAction>
<Action>BattleEncounter</Action>
<StringParam>PrecursorEncounter</StringParam>
</PerformAction>
</EncounterTriggers>
<OnEvent>OnArriveAtAnomaly</OnEvent>
<Target>
<TargetType>Ship</TargetType>
<TriggerGroupTargetType>AllShipsInFleet</TriggerGroupTargetType>
</Target>
<Lifetime>Instant</Lifetime>
<PerformAction>
<Action>ChangeShip</Action>
<StringParam>NameOfShipClassStaticBlueprint</StringParam>
</PerformAction>
</Triggers>
</Anomaly>
2) DestroyObject Action + AwardShipOfClass Action:
<Anomaly>
<InternalName>NameOfAnomaly</InternalName>
<DisplayName>NameOfAnomaly_Name</DisplayName>
<Description>NameOfAnomaly_Dec</Description>
<ArtDefine>PrecursorAnomalyArt</ArtDefine>
<Weight>25</Weight>
<EncounterChance>100</EncounterChance>
<EncounterTriggers>
<OnEvent>OnCollideAtAnomaly</OnEvent>
<Target>
<TargetType>Fleet</TargetType>
</Target>
<Lifetime>Instant</Lifetime>
<PerformAction>
<Action>BattleEncounter</Action>
<StringParam>PrecursorEncounter</StringParam>
</PerformAction>
</EncounterTriggers>
<Triggers>
<OnEvent>OnArriveAtAnomaly</OnEvent>
<Target>
<TargetType>Fleet</TargetType>
</Target>
<Lifetime>Instant</Lifetime>
<PerformAction>
<Action>AwardShipOfClass</Action>
<StringParam>NameOfShipClassStaticBlueprint</StringParam>
</PerformAction>
</Triggers>
<Triggers>
<OnEvent>OnArriveAtAnomaly</OnEvent>
<Target>
<TargetType>Ship</TargetType>
<TriggerGroupTargetType>AllShipsInFleet</TriggerGroupTargetType>
</Target>
<Lifetime>Instant</Lifetime>
<PerformAction>
<Action>DestroyObject</Action>
</PerformAction>
</Triggers>
</Anomaly>
There seems to be no way to flip to an random class.
(Edit: This possible by the second way and the AwardRandomShip Action)