This macro should do it.

Sub Test()
For Each Name In ActiveWorkbook.Names
    Name.Delete
Next Name
End Sub
I'm not sure what you meant be redundant. If you mean contains no data then use..

Sub Test()
For Each Name In ActiveWorkbook.Names
    If Application.CountA(Range(Name.RefersToRange.Address)) = 0 Then
        Name.Delete
    End If
Next Name
End Sub