My solution currently looks as follows:
Hash pedweaphash;
Vector3 vec = ENTITY::GET_WORLD_POSITION_OF_ENTITY_BONE(peds[i], PED::GET_PED_BONE_INDEX(peds[i], 11300));
WEAPON::GET_CURRENT_PED_WEAPON(peds[i], &pedweaphash, false, 0, false);
WEAPON::SET_PED_DROPS_INVENTORY_WEAPON(peds[i], pedweaphash, vec.x, vec.y, vec.z, 30);
So I first get the position of the right hand, then I get the current ped weapon and then I drop the current weapon out of the peds inventory at the position of the right hand.
The drawbacks of this method is that weapons dropped this way appear partly invisible and they are also marked with a "weapon pickup" symbol on the radar.
In GTA 5 there is this native (which only needs a ped parameter and then makes the ped drop the current weapon - no drawbacks):
void SET_PED_DROPS_WEAPON(Ped ped) // 0x6B7513D9966FBEC0 0x3D3329FA
Has anyone found this one in RDR 2 yet?