assoc1 = AssociationThread[dnames1, dnumber]
>     <|"A1" -> 20, "A2" -> 20, "A3" -> 11, "A4" -> 21, "A5" -> 19,   "A6" -> 20|>

You can get `newdnames1` directly using

    dnames1[[Ordering[dnumber]]]

If you you want to work with associations, for `newdnumber`, you can get the desired result simply using `Sort`:

    assoc2b = Sort[assoc1]
>      <|"A3" -> 11, "A5" -> 19, "A1" -> 20, "A2" -> 20, "A6" -> 20,  "A4" -> 21|>

    Keys @ assoc2
>      {"A3", "A5", "A1", "A2", "A6", "A4"}


For general  `newdnumber`, you can sort `assoc1` using `SortBy[PositionIndex[newdnumber]]`:

    assoc2 = SortBy[PositionIndex[newdnumber]]@assoc1
>     <|"A3" -> 11, "A5" -> 19, "A4" -> 21, "A1" -> 20, "A2" -> 20,  "A6" -> 20|>

    Keys @ assoc2
>      {"A3", "A5", "A1", "A2", "A6", "A4"}

    SeedRandom[1]

    shuffledDnumber = RandomSample[dnumber]
>      {19, 11, 20, 20, 21, 20}

    assoc3 = SortBy[PositionIndex[shuffledDnumber]]@assoc1
>     <|"A5" -> 19, "A3" -> 11, "A4" -> 21, "A1" -> 20, "A2" -> 20,  "A6" -> 20|>

    Keys @ assoc3
>     {"A5", "A3", "A4", "A1", "A2", "A6"}