The calculated distance (air line) between Duisburg and Viersen is approximately 20 miles respectively 32 kilometers.
By car or train, the actual journey to Viersen is certainly longer, as only the direct route (as the crow flies) between Duisburg and Viersen has been calculated here.