Have you tried the crater() function in Wilbur? It generates perfectly round craters, but applying it to an existing random field with a multiply operation will give you something like what you describe (see attachment). If you want the rim distance to wander a bit then I'd have to put back in the fbm function that you could use to modify the crater function argument.
Internally, the crater() function looks like
if (arg <= RimDist)
A wilbur function that does the same should look like
with appropriate expressions substituted for the named arguments (for example, arg replaced with r/4, RimDist replaced with 0.5, and so on).